2016-10-25 13 views
1

私は初心者のJavaクラスに属しています。追加のメソッドを使用して別のメソッドを使用することについては混乱します。私は自分の仕事の大部分をやっていると思うが、その方法を作るためには助けが必要だ。 1つは質問を生成し、もう1つはメッセージを表示することです。同じ結果を生成するメソッドを作成する

私はメソッドを呼び出すと、まだ正しくループさせるようにする方法

public static test(num1,num2,num3) 

が、私のコード内を呼び出すために、どのように私はそれを作るかということ?知っていますか

:そのために、私は

public static in generateQuestion() 

public static void displayMessage(boolean isCorrect) 

これをという名前のメソッドを記述する必要が私に与えられた課題の指示で

は、私のコードです
//For Random Generator 
import java.util.Random; 
//Uses a class Scanner 
import java.util.Scanner; 
public class Assign6 
{ 
    public static void main(String[] args) 
    { 
     //Scanner to Obtain Input from CW 
     Scanner input = new Scanner(System.in); 
     //Generate Random Number for Quiz 
     Random randomNumbers = new Random(); 
     int number1 = 0; 
     int number2 = 0; 
     int answer = 0; 
     //Rolls number from 1-9 
     number1 = randomNumbers.nextInt(9); 
     number2 = randomNumbers.nextInt(9); 
     //Question prompt 
     System.out.println("How much is " +number1+ " times " +number2+ "? "); 
     answer = input.nextInt(); 
     //If Else While Statements 
     if(answer == (number1*number2)) 
     { 
      System.out.println("Good job! You got it right!"); 
     } 
     else 
     { 
      while (answer !=(number1*number2)) 
      { 
       System.out.println("You got it wrong, try again!"); 
       answer = input.nextInt(); 

      } 
     } 
    } 
} 
+1

:ループした後
displayMessgae(true)

これは、このための私の作業コードで呼び出して終了しました。間違ってしまった直後に成功メッセージが表示されることはありません。 – 4castle

+1

方法の仕組みを見直す必要があると思う – jthort

答えて

0

あなたの質問が正しく理解されている場合は、単純にクエストを印刷する機能を分離することです答えを別々の方法で表示します。あなたは、ランダムな値と出力を生成するコードを保持しようとしている二つの方法

public static void generateQuestion() 

を持ってしようとしている

public class Assign6 
{ 
    public static void main(String[] args) 
    { 
     // Scanner to Obtain Input from CW 
     Scanner input = new Scanner(System.in); 
     // Generate Random Number for Quiz 
     Random randomNumbers = new Random(); 
     int number1 = 0; 
     int number2 = 0; 
     int answer = 0; 
     // Rolls number from 1-9 
     number1 = randomNumbers.nextInt(9); 
     number2 = randomNumbers.nextInt(9); 

     displayQuestion("How much is " + number1 + " times " + number2 + "?"); 

     answer = input.nextInt(); 
     // If Else While Statements 
     if (answer == (number1 * number2)) 
     { 
      displayMessage(Boolean.TRUE); 
     } 
     else 
     { 
      while (answer != (number1 * number2)) 
      { 
       displayMessage(Boolean.FALSE); 

       answer = input.nextInt(); 

      } 
     } 
    } 

    public static void displayQuestion(String q) 
    { 
     System.out.println(q); 
    } 

    public static void displayMessage(Boolean isCorrect) 
    { 
     if (isCorrect) 
     { 
      System.out.println("Good job! You got it right!"); 
     } 
     else 
     { 
      System.out.println("You got it wrong, try again!"); 
     } 
    } 

} 
+0

入力された答えが間違っていると、「あなたは間違っている」というメッセージが表示されません。 –

+0

私はあなたのためにそれをデバッグしなかった、私は2つの方法を使用する要件を実装する方法だったあなたが実際に尋ねた質問に対処しました。 – Matt1776

+0

ああ、はい。それは私にそれを理解するのを助けました。ありがとうございました! –

1

下記のコードの私の編集されたバージョンを参照してください。すべてのことが印刷されているので、voidを返します。

次はif(answer == (number1*number2))がパラメータとして真と真である場合に呼び出されます

public static void displayMessage(boolean isCorrect) 

を持つことになります。それ以外の場合は引き続き呼び出されますが、渡されたパラメータはfalseになります。このメソッドは、isCorrectが真か偽かを判断し、適切なメッセージを出力します。

1

私はそれが正しいとすれば、私は少し愚かかもしれないが、あなたの割り当てのために働く解決策を持っています。
ランダムなintを2つ作成するgenerateQuestionを作成すると、質問が出力され、複数の(回答)が返されます。
displayMessgae「これは正しい仕事です!」と表示されます。 isCorrecttrueの場合、「間違っています。もう一度やり直してください!」 else、

generateQuestionを呼び出してから回答を得て、答えが正しい(返される値はgenerateQuestion)までループすることができます。

新しい回答が得られるたびに(ループ中)、displayMessgae(false)に電話してください。あなたはいくつかのより多くのコードを再構築する必要があるかもしれません

//For Random Generator 
import java.util.Random; 
//Uses a class Scanner 
import java.util.Scanner; 
public class Assign6 
{ 
    public static int generateQuestion() 
    { 
     Random r = new Random(); 
     int x = r.nextInt(9), y = x = r.nextInt(9); 
     System.out.println("How much is " + x + " times " + y + "? "); 
     return x * y; 
    } 
    public static void displayMessage(boolean isCorrect) 
    { 
     if (isCorrect) 
      System.out.println("Good job! You got it right!"); 
     else 
      System.out.println("You got it wrong, try again!"); 
    } 
    public static void main(String[] args) 
    { 
     //Scanner to Obtain Input from CW 
     Scanner input = new Scanner(System.in); 
     int rightAnswer = 0; 
     rightAnswer = generateQuestion(); 
     while (input.nextInt() != rightAnswer) 
      displayMessage(false); 
     displayMessage(true); 

    } 
} 
+0

したがって、あなたはvoidを使ってメソッドを呼び出しています:rightAnswer = generateQuestion();右? –

+0

@ guest_20どういう意味ですか? – Neo

関連する問題