2017-09-28 11 views
-1

elseステートメントを除くすべてが正しく実行されます。数字が同じになるとスキップされます。それは最後に "あなたはそれを持っている"とは言わない。私のwhileステートメントで何が問題になっていますか? Elseステートメントは書き込まれません

//declare variables 
int number = 4; 
int guessCount = 0; 
int guess; 

//get first number 
Console.WriteLine("Guess a number between 1 and 10:"); 
guess = Convert.ToInt32(Console.ReadLine()); 
guessCount = guessCount + 1; //increment counter 

while (guess != number) //keep repeating until number is chosen 
{ 
    guessCount = guessCount + 1; //increment counter 

    if (guess < number) //if statement if guess is less than number 
    { 
     Console.WriteLine("Your guess is too low."); 
    } 
    else if (guess > number) //if statement if guess is more than number 
    { 
     Console.WriteLine("Your guess is too high."); 
    } 
    else // 
    { 
     Console.WriteLine("You got it!!"); 
    } 

    //end of while to ask for a new guess 
    Console.WriteLine("Guess again: "); 
    guess = Convert.ToInt32(Console.ReadLine()); 
} 

//display output 
Console.WriteLine("You figured it out in " + guessCount + " guesses."); 
Console.ReadLine(); //keep window open 
+4

'' –

+0

私が勝つと答えを得るために待つことができない「あなたはそれを得た!再びゲス」あなたが終了するために、2回連続で推測する必要があります –

+0

' whileループ –

答えて

2

それはwhileループに来ているとき、それはguess!=numberであり、ここで可能であるだけ状態がすでにのためにチェックしてguess < numberguess > numberあり、そしてもしのでguessguess = numberが無意味であることを意味しnumberと同じですが、whileループには入っていません。これは、elseステートメントがチェックする唯一の状態がであるため、elseステートメントが実行されない理由です。

2

あなたしばらく式は述べている:!を推測=ユーザーが(あなたのハードコードされた値)を入力していない限り、真である数となります。の直前に設定されていますが、の式がチェックされているので、ユーザーが正しい番号を入力すると、while式がfalseになり、飛び越されます。私はあなたのコードを問題の場所にコメントしました。 (!=数を推測)しながら、

//declare variables 
int number = 4; 
int guessCount = 0; 
int guess; 

//get first number 
Console.WriteLine("Guess a number between 1 and 10:"); 

// Problem A: user types in 4 -> guess becomes equal to number -> while expression gets false -> while body will not be executed 
guess = Convert.ToInt32(Console.ReadLine()); 

while (guess != number) //keep repeating until number is chosen 
{ 
    guessCount = guessCount + 1; //increment counter 
    if (guess < number) //if statement if guess is less than number 
    { 
     Console.WriteLine("Your guess is too low."); 
    } 
    else if (guess > number) //if statement if guess is more than number 
    { 
     Console.WriteLine("Your guess is too high."); 
    } 
    else // 
    { 
     Console.WriteLine("You got it!!"); 
    } 

    //end of while to ask for a new guess 
    Console.WriteLine("Guess again: "); 

    // Problem B: user types in 4 -> guess becomes equal to number -> while expression gets false -> loop ends 
    guess = Convert.ToInt32(Console.ReadLine()); 
} 
関連する問題