2017-06-14 14 views
-4

私のコードで何が間違っているのか分かりませんが、もう一度繰り返しています。whileループはもう一度繰り返されます

do { 
     scanf("%c", &operacao); 
     //Tratamento de erro (Validando a informacão vinda do usuário 
     if ((operacao != '*') && (operacao != '+') && (operacao != '-')) { 
      printf("---------------------------------------\n"); 
      printf("*****  MENSAGEM DE ERRO  *****\n"); 
      printf("---------------------------------------\n"); 
      printf("Você digitou um valor inválido!\n"); 
      printf("Por favor, digite + para soma, - para subtração * para multiplicar ou/para dividir!\n"); 
     } 
    } while ((operacao != '*') && (operacao != '+') && (operacao != '-')); 
+4

デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。詳しい読書:[小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) – NathanOliver

+0

1.それを読んだ後にオペラカオを印刷してください。 2.オペラカオはどんなタイプですか?値を印刷するとループ中に理解するのに役立ちます。 –

+0

C++とタグ付けされているので、 'scanf'ではなく' cin >> c'を考慮する必要があります。 –

答えて

3

次の文

scanf(" %c", &operacao); 
     ^^^ 

を使用してくださいそうでない場合(入力し、押されたキーに対応する新しい行文字'\n'例えばなど)空白文字も読み込まれます。

+0

チップのためのThx - 私はすでに問題を解決しました。とにかくあなたの注意のThx。 –

+0

@AlexSousaまったくありません。どういたしまして。 –

関連する問題