2

宿題があります...コードは以下にあります...それについていくつか質問があります...事前に感謝します。初心者のJava学生...これがぎこちないように見えても、笑わないでください >.> 以下のコード...

    /*
     * Getting to know you...
     * @author Elle dela Victoria
     * @version 092812
     */
       import java.util.*;
       public class A15_1
       {
           public static void main(String[] args)
           {
           Scanner input = new Scanner(System.in);

           System.out.print(
           "Mind answering some questions for me?\n" +
           "Type quit when you're ready to leave.\n");

       while(true)
       {
        System.out.print("Does your name start with the letter H? ");
        input.nextLine();
        int ans = (int)(Math.random() * 5);
        if (ans == 0)
            System.out.println("That's awesome!");
        if (ans == 1)
            System.out.println("Awww, how unfortunate!");
        if (ans == 2)
            System.out.println("You're amazing at this!");
        if (ans == 3)
            System.out.println("LOL!");
        if (ans == 4)
            System.out.println("WTF!! That's horrible!");

        System.out.print("Are you male? ");
        input.nextLine();
        int ans1 = (int)(Math.random() * 5);
        if (ans1 == 0)
            System.out.println("That's awesome!");
        if (ans1 == 1)
            System.out.println("Awww, how unfortunate!");
        if (ans1 == 2)
            System.out.println("You're amazing at this!");
        if (ans1 == 3)
            System.out.println("LOL!");
        if (ans1 == 4)
            System.out.println("WTF!! That's horrible!");

        System.out.print("Are you female?");
        input.nextLine();
        int ans2 = (int)(Math.random() * 5);
        if (ans2 == 0)
            System.out.println("That's awesome!");
        if (ans2 == 1)
            System.out.println("Awww, how unfortunate!");
        if (ans2 == 2)
            System.out.println("You're amazing at this!");
        if (ans2 == 3)
            System.out.println("LOL!");
        if (ans2 == 4)
            System.out.println("WTF!! That's horrible!");

        System.out.print("Are you in school right now?");
        input.nextLine();
        int ans3 = (int)(Math.random() * 5);
        if (ans3 == 0)
            System.out.println("So angry when you're sober!");
        if (ans3 == 1)
            System.out.println("Awww, how unfortunate!");
        if (ans3 == 2)
            System.out.println("You're amazing at this!");
        if (ans3 == 3)
            System.out.println("LOL!");
        if (ans3 == 4)
            System.out.println("WTF!! That's horrible!");

        String userinput = input.nextLine();
        if (userinput.equalsIgnoreCase("quit"))
            break;      
      }
   }
 }
  1. 各質問の文字列名を変更せずに、質問ごとに IF ステートメントを使用する方法はありますか?
  2. これらの if ステートメントのメソッド (?) を作成する方法はありますか?
  3. ユーザーが 10 秒以内に回答を入力しない場合、回答を求めるタイマーが欲しいのですが、どうすればよいですか?
4

4 に答える 4

1

文字列の配列を持ち、入力に従ってそれらを出力できますans

    String str[] = {"That's awesome!", "Awww, how unfortunate!",
     "You're amazing at this!", "LOL!", "WTF!! That's horrible!"};

      /* code */

  while(true)
       {
        System.out.print("Does your name start with the letter H? ");
        input.nextLine();
        int ans = (int)(Math.random() * str.length);
        System.out.println(str[ans]);

      /* code */
   }
于 2012-09-30T18:39:53.743 に答える
0

これが1と答えるかどうかはわかりませんが、2と答える必要があります。

private String getAnswer() {
   int ans = (int)(Math.random() * 5);
   switch(ans) {
   case 0:
      return "That's awesome!";
   case 1:
      return "Awww, how unfortunate!";
   [... and so on ...]
   }
   return null
} 

このような答えが必要な場所で呼び出すよりも:System.out.println(getAnswer());

于 2012-09-30T18:42:38.410 に答える
0

リストを使用して応答を保存することをお勧めします。これにより、ステートメントの必要性が軽減ifされ、4つの異なる場所に新しい応答を追加する必要がなくなります。

List<String> responseList = new ArrayList<String>();
responseList.add("That's awesome!");
responseList.add("LOL!");
responseList.add(.....);

System.out.println(responseList.get(ans));
于 2012-09-30T18:44:42.147 に答える
0
  1. はい、できます。使用するタイプのパラメーターをint使用してメソッドを作成します。

    public void printReply(int ans) {
        if (ans == 0)
            System.out.println("So angry when you're sober!");
        if (ans == 1)
            System.out.println("Awww, how unfortunate!");
        if (ans == 2)
            System.out.println("You're amazing at this!");
        if (ans == 3)
            System.out.println("LOL!");
        if (ans == 4)
            System.out.println("WTF!! That's horrible!");
    }
    

    適切な場所でこれを呼び出します。

  2. よくわかりませんが、最初の答えがこれをカバーしていると思います。

  3. すべての sで指定されているwait()メソッドを調べます。Object

余談ですが、入力に対して何もしていません。を呼び出して床に落としますinput.nextLine()。それを変数に取り込むことを検討する必要があります。

于 2012-09-30T18:39:46.947 に答える