C(Javaプログラマー)が新しく、なぜこのような状況が発生するのか不明です。Cプログラムのelse節が発生しないときに発生する
私は自動販売機をシミュレートしており、ユーザーはコインとして機能する端末に1つのチャーを入力することになっています。
while(leftOverCost > 0){
printf("Enter coin(nqrd): ");
char coin;
coin = getchar();
if(coin=='N' || coin=='n'){
printf("Nickle detected.\n");
userTotal += 5;
leftOverCost -= 5;
printf("\tYou have inserted a total of %d cents.\n", userTotal);
if(leftOverCost < 0) break;
printf("\tPlease insert %d more cents.\n", leftOverCost);
}
else if(coin=='D' || coin=='d'){
printf("Dime detected.\n");
userTotal += 10;
leftOverCost -= 10;
printf("\tYou have inserted a total of %d cents.\n", userTotal);
if(leftOverCost < 0) break;
printf("\tPlease insert %d more cents.\n", leftOverCost);
}
else if(coin=='Q' || coin=='q'){
printf("Quarter detected.\n");
leftOverCost -= 25;
userTotal += 25;
printf("\tYou have inserted a total of %d cents.\n", userTotal);
if(leftOverCost < 0) break;
printf("\tPlease insert %d more cents.\n", leftOverCost);
}
else if(coin=='R' || coin=='r'){
printf("bye\n");
break;
}
else{
printf("Unknown coin.");
}
}
なぜこのelse節が常に実行されるのですか?私は形式で出力が得られます。ユーザーは自分のコードが認識されない何かを入力すると
You have inserted a total of 25 cents.
Please insert 30 more cents.
Enter coin (nqrd): Unknown coin rejected.
はそれだけで実行されないでしょうか?これはgetchar()メソッドと関係がありますか?認識されない文字を入れると2回発生します。あなたの文字を入力した後C.
で
あなたはどのキャラクターをお持ちですか?あなたはEnterまたは何かを打った後にエラーが発生します... – Elalfer
それで、それはcharとしてenterを認識しますか?私は文字列を使って作業する方が良いでしょうか、おそらくユーザ入力を整数として格納しているのでしょうか? (私はJavaを使い始めると高レベルに慣れていたと思います) – AeriaGlorisia
あなたが入力したと思った文字は何ですか? –