誰かがこのdo-whileループが正しく動作していない理由を説明できますか?なぜこのdo-whileループは動作しませんか?
プログラムが式を要求すると、プログラムは正しい答えを出力します。答えを表示した後、プログラムはユーザーに別の計算を実行するかどうかを尋ねます。しかし、ユーザーが計算をやり直したくないと示したとしても、プログラムはループします。
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main() {
float num_one;
float num_two;
char user_operator_one;
char repeat;
cout << "This is a very simple calculator." << endl;
cout << "Please enter your expression: ";
cin >> num_one >> user_operator_one >> num_two;
cout << "\n\n";
do
{
switch (user_operator_one)
{
case '+':
cout << num_one << "+" << num_two << "=" << num_one + num_two << endl;
break;
case '-':
cout << num_one << "-" << num_two << "=" << num_one - num_two << endl;
break;
case '*':
cout << num_one << "*" << num_two << "=" << num_one * num_two << endl;
break;
case '/':
if (num_two == 0) {
cout << "Answer is undefined" << endl;
}
cout << num_one << "/" << num_two << "=" << num_one/num_two << endl;
break;
default:
cout << user_operator_one << "is an unknown operation." << endl;
break;
}
cout << "Would you like to perform another operation (enter a 1 for yes, 0 for no.)";
cin >> repeat;
} while (repeat == 1);
}
に
を変更することができます'1'や' 0'の代わりに 'y'や' n'を要求してみませんか? – Barmar
また、この 'num_two == 0'のような2つのfloatを比較するのは良い考えではありません – Rama
繰り返し問題を解決しても、表現。 – Barmar