C++ を学習しており、基本的な電卓アプリを作成してみました。目標は、ユーザーから 0 ~ 9 の 2 つの数字と、数学演算 (+、-、、/) を取得することです。他の文字が入力された場合は、プログラムをループして、適切な入力を求め続ける必要があります。
しかし、プログラムを実行すると、0 ~ 9 の数字が認識されず、ループが繰り返されます。私が使っている主な機能はこの3つです。メインから呼び出しているだけなので、そこに問題があるとは思えません。助けてください?
ああ、go-to を使うべきではないことはわかっていますが、練習したかったのです。そして、このコードをより効率的に記述する方法を指摘できれば、それは素晴らしいことです。どうもありがとう。
int GetUserInput(){
using namespace std;
cout << "Please enter a number between 0-9." << endl;
char inputChar;
cin >> inputChar;
while (inputChar != ('1' || '2' || '3' || '4' || '5' || '6' || '7' || '8' || '9' || '0')) {
cout << "Please enter a number between 0-9." << endl;
cin >> inputChar;
}
return static_cast <int> (inputChar);
}
char GetMathematicalOperation(){
using namespace std;
cout << "Please enter a mathematical operator (+, -, *, /)" << endl;
// Storing user input character into char inputChar
char inputChar;
inputloop:
cin >> inputChar;
switch(inputChar) {
case('+'):
case('-'):
case('*'):
case('/'):
break;
default:
cout << "Please enter a mathematical operator (+, -, *, /)" << endl;
goto inputloop;
}
return inputChar;
}
int CalculateResult(int x, char Operator, int y){
if (Operator = '+')
return x+y;
if (Operator = '-')
return x-y;
if (Operator = '*')
return x*y;
if (Operator = '/')
return x/y;
return 0;
}