2017-01-23 7 views
0

私はJavaを学ぶ過程にいる、少なくとも私は試している。 今、私はmath.randomで生成された乱数を推測する必要があるアプリケーションを作った。ここで乱数を推測

はコードです:

import java.util.Scanner; 

public class var { 
    public static void main(String[] args) { 

     Scanner keyboard = new Scanner(System.in); 
     //var definitie 
     int player; 
     int rnummer; 

     rnummer = (int) (Math.random() * 50 + 1); 

     System.out.println("Raad het nummer!"); 
     player = keyboard.nextInt(); 
     System.out.println(rnummer); 

     //goed geraden check 
     if (player == rnummer) { 
      System.out.println("Helaas, dat is niet juist."); 
      player = keyboard.nextInt(); 
     } 
     System.out.println("Goed geraden!"); 
    } 
} 

は今、あなたはそれが正しいと推測するたびに、あなたは間違って推測することができないという問題があります。 私は問題を理解することはできません..それは非常に簡単でなければなりません。

+0

「正しいと思うたびに、間違っているとは思わない」とはどういう意味ですか? –

+0

フローはかなりシンプルに見えます。数値が正しければ(==)、エラーメッセージが表示されます(「dat is niet juist。」)、別の数値が読み取られます。その後、正の出力が表示されます( "Goer geraden!")。 – BurninLeo

+0

でも、数字を入力しても、ランダムに生成された数字を入力して別のものを入力しても、いつもいいです。 – Luukwa

答えて

6

あなたがその文を理解する必要があります。

if player is equals to rnummer 
then 
    print "Helaas, dat is niet juist." 
    ask a value and store it in player 
and read the next line 

をしかし、あなたが欲しいのはこれが我々がループ呼んで

if player is NOT equals to rnummer 
then 
    print "Helaas, dat is niet juist." 
    ask a value and store it in player 
check again the condition 

です:

if (player == rnummer) 
{ 
    System.out.println("Helaas, dat is niet juist."); 
    player = keyboard.nextInt(); 
} 

これが意味しています。これはifと似ていますが、条件がfalseの場合にのみ文を終了します。

while(player != rnummer) 
{ 
    System.out.println("Helaas, dat is niet juist."); 
    player = keyboard.nextInt(); 
} 

if条件が真である場合にのみ、ブロックステートメントを1回実行します。

whileは、条件がfalseになるまでブロックを実行します。

注:ループは条件がfalseの場合のみ終了します(完全に真ではないキーワードもありますが、これは他のテーマです)、無限ループに終わる可能性があります。偽です。

while(true){ 
    //Statement 
} 
// Unreachable code 
+0

それは非常に理解しやすくなります。それ。 – Luukwa

+1

@Luukwaそのための教師があります;) – AxelH

+0

@Luukwa、私はちょうどループについて少しコメントを追加しました、これはいくつかの予期しないバグを防ぐために興味深いはずです;) – AxelH

2

は、あなたは、単にwhileループでif文を置換する必要があります。natual語で「あなたの推測は乱数と異なっているが、努力を続ける」にtranlatedできること

while (player != rnummer) { 
    System.out.println("Helaas, dat is niet juist."); 
    player = keyboard.nextInt(); 
} 

。 ifのみを使用すると、{}内のコードは条件が真である場合にのみ実行されますが、その後はプログラム内で次の命令(コード内でSystem.out.println("Goed geraden!");)が続行されます。

+0

修正したようです。ありがとう!まだループにはありません。なぜ私はifを使ったのですか? – Luukwa

+0

@Luukwa問題はありません、私たちはここで学びます^^私は簡単な説明を追加しました。役に立つと願っています:) – SimoV8

関連する問題