2017-09-15 18 views
-3

私はC++を初めて使いました。 私はこの単純な電卓を終了しましたが、私はそれに2つの特定の条件を追加する必要があります。特定の条件のループと単純な電卓の末尾

*まず、最初の入力が数字の場合は、終了後にループする必要があります。

*第2の入力は、最初の入力が数字以外の場合に終了する必要があります。

どうすればいいですか?おかげさまで

#include <iostream> 
using namespace std; 

int main() 
{ 
float num_1,num_2; 


char operator_1; 

cout << "Enter a number, an operator, and another number: " << endl; 
cin >> num_1; 
cin >> operator_1; 
cin >> num_2; 


cout << num_1 << " "; 
cout << operator_1 << " "; 
cout << num_2 << " = "; 


switch (operator_1) 
{ 
    case '+': 
     cout << num_1 + num_2; 
     break; 
    case '-': 
     cout << num_1 - num_2; 
     break; 
    case '*': 
     cout << num_1 * num_2; 
     break; 
    case '/': 
     cout << num_1/num_2; 
     break; 
} 

return 0; 
} 
+1

プログラムのどの部分を繰り返して、ループの内側に配置するかを解説します。 – stark

+0

無関係:すべての入力をテストして意味があることを確認する必要があります。たとえば、 'num_1'が有効な数値で、' num_2'が有効でない場合、あなたのプログラムは何をしますか? – user4581301

答えて

1

あなたは何かしたい:

int main() 
{ 
    float num_1, num_2; 
    char operator_1; 

    while (true) { 
     cout << "Enter a number, an operator, and another number: " << endl; 
     if (!(cin >> num_1)) { 

      cout << "Error" << endl; 
      return 0; 
     } 
     cin >> operator_1; 
     cin >> num_2; 


     cout << num_1 << " "; 
     cout << operator_1 << " "; 
     cout << num_2 << " = "; 


     switch (operator_1) 
     { 
     case '+': 
      cout << num_1 + num_2 << endl; 
      break; 
     case '-': 
      cout << num_1 - num_2 << endl; 
      break; 
     case '*': 
      cout << num_1 * num_2 << endl; 
      break; 
     case '/': 
      cout << num_1/num_2 << endl; 
      break; 
     } 
    } 
    return 0; 
} 

num_1でエラーがキャッチされ、どのようにすべてがwhileループ内でする方法注意を。あなたが望むように、最初の入力が有効でない場合にのみ、プログラムは終了します。