2017-05-18 17 views
-4
#include <iostream> 
using namespace std; 
int main() 
{ 
int n; 
cin >> n; 
if(1<=n<=9) 
    { 
    switch(n) 
     { 
    case 1:cout<<"one"; break; 
    case 2:cout<<"two"; break; 
    case 3:cout<<"three"; break; 
    case 4:cout<<"four" ;break; 
    case 5:cout<<"five" ;break; 
    case 6:cout<<"six" ;break; 
    case 7:cout<<"seven"; break; 
    case 8:cout<<"eight" ;break; 
    case 9:cout <<"nine"; 

    } 
    } 
    else 
    { cout<<"greater than nine"; } 

} 

私が実行している(または)私elseステートメントをコンパイルする私はそれ他に文が表示されていない44のように番号を与えている場合など を働いていない上記のコードCで他の場合のそれそれは9より大ですが、ifの場合はうまくいきます。作業++言語

+1

あなたの条件が適切に指定されていない場合に条件を変更してみてください。 –

+2

'1 <= n <= 9'という表現は'(1 <= n)<= 9'に等しいので、ブール値( '1 <= n'の結果)と数値を比較します。 –

+0

'1 <= n <= 9'は複数のブール条件を指定する正しい方法ではありません。ほとんどの言語では '&&'が必要です。 – AndyG

答えて

3

ifに問題があります。

それはこのようにする必要があります:それは今のよう

if (n >= 1 && n <= 9) 

は、それは常にtrueと評価されます

if ((1 <= n) <= 9) 

を意味します。

1

if (1<=n && n<=9) 
+0

あなたの条件が間違っていたら if(n> = 1 && n <= 9) – Esperadoce

+0

「n> = 1」と「1 <= n」は同等です。後者の条件は、数学的な形式に似ているので、より読みやすいかもしれません。 '1 <= n && n <= 9'は理解するために*見る*を必要とし、' n> = 1 && n <= 9'は*読み*が必要です。読みやすさの違いは小さく、主観的です。 – anatolyg

+0

@Esperadoceこの回答の条件には何も問題はありません。 – Blastfurnace

関連する問題