2016-08-29 6 views
0

課題を終了しようとしています。私は配列のサイズ100で乱数を生成し、ユーザーに1から100の間の数字を尋ねるプログラムをJavaで書く必要があります。数字が配列内にあれば、数字がどの位置にあるかが表示されます。そうでない場合は、番号が見つからなかったことがわかります。これまでのところ、私は番号が見つからなかったことを蹴るためにしか得ることができません。それはそれを4回別々に印刷します。ユーザ入力のために配列を検索

パッケージlab1;

import java.util.Random; import java.util.Scanner;

public class RandomArray { 
public static void main(String[] args) { 
    int [] randomArray = new int [100]; 
    Random randomGenerator = new Random(); 

for (int i = 0; i< randomArray.length; i++){ 
    randomArray[i] = randomGenerator.nextInt(100); 

} 
Scanner input = new Scanner (System.in); 
int searchNumber; 
System.out.println("Please enter a number to search for between 1 and 100: "); 
searchNumber= input.nextInt(); 



     boolean found = false; 
     for (int i = 0; i < randomArray.length; i++){ 
      if (searchNumber == randomArray[i]){ 
       found = true; 
       break; 

      } 

     if (found){ 
      System.out.println("We have found your" + "number at index " + i); 
     }else{ 
       System.out.println("We did not find your number"); 
      } 
     } 
    } 


} 
+3

'if' /' else'条件を 'found'の' for'ループの外側に移動してください。あなたはインデントが正しいならば、これらのようなミスをより簡単に見つけるでしょう。 – Zircon

+0

あなたの助けをありがとう、私はちょうどこれと私のすべての非常に新しいものを学ぶの表面を傷つけていないです。 – acorn

答えて

0

forループ内であなたのif声明。だから毎回searchNumber == randomArray[i]false you checkなら、(見つかった). It leads to else branch which print "私たちはあなたの番号を見つけられませんでした"。

PS:デバッガの使い方を学んでください。それはあなたの人生を大幅に簡素化します。

0

あなたは同じ番号の2つ以上の場所がある場合、それはちょうど乱数を生成しているので、あなたは忘れてしまいます。 どうすればいいですか:

boolean found = false; 
    for (int i=0; i < randomArray.length; i++) { 
     if (searchNumber == randomArray[i]) { 
      found = true; 
      System.out.println("We have found your number at index " + i); 
     } 
    } 

    if (!found) { 
     System.out.println("We did not find your number"); 
    } 
関連する問題