2016-11-09 8 views
0
#include <iostream> 

int main() 
{ 
    int number; 
    using namespace std; 

    cout<<"write number between 1 and 10:"<<endl; 
    cin>>number; 

    if (number<=10 && number>=1) 
    cout<<"correct!"<< endl; 
    else 
    do{ 
     cout<<"wrong! new number:"<<endl; 
     cin>>number; 
    } 
    while(number>10 && number<1); 
} 

ループは一度だけになり、直接終了:(私は条件が満たされるまで、それが延々と行ってみたい。イムは非常に新しいdoesntのループが++ので、任意のヘルプは大歓迎されている間:)C++単純なCのループ

+5

'number> 10 && number <1'この条件は決して真実ではありません。同時に10以上1未満の数字はありません。 –

答えて

1

あなたのwhile条件が間違っている場合はandの代わりにor(あなたの場合は&&の代わりに||)でなければなりません。このようなエラーを避け、コードクリーナーでコードを繰り返さないようにするには、文字通り論理的に同じコードを実行するようにします。二回cinから、あなたが入力し、あなたのコードでは、あなたが二倍にも条件をチェック:

int number = 0; 
while(true) { 
    cout << "Enter number between 1 and 10:"; 
    cin >> number; 
    if(number >= 1 && number <= 10) 
     break; 
    cout << "invalid number, try again" << endl; 
} 
0

while条件は明らかに間違っています。 > 10 および < 1という変数は存在しません。 ||を入れるようにしてください最初の条件で& &の代わりに。

+0

あなたは正しいです、私は編集します。 –

0
#include <iostream> int main() { int number; using namespace std; cout<<"write number between 1 and 10:"<<endl; cin>>number; if (number<=10 && number>=1) cout<<"correct!"<< endl; else do{ cout<<"wrong! new number:"<<endl; cin>>number; } while(number<10 && number>1); } 

あなたの条件は正しくなく、私はそれを修正しました。 あなたの条件が一度も満たされていません 条件を確認する前にタスクが完了しているためです。

関連する問題