当前位置: 首页 > 知识库问答 >
问题:

JAVAWhile循环程序

经伟
2023-03-14

我有一个家庭作业。。。代码如下。。。有几个问题要问。。。提前谢谢。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. 有没有办法创建一个方法(?)对于那些如果语句,所以我不必为我问的每一个问题写出来?
  3. 如果用户在10秒内没有输入答案,我想有一个定时器提示他们回答,我该怎么做?

共有3个答案

谢承颜
2023-03-14

我建议使用列表来存储响应。这将减少对if语句的需要,还可以避免在四个不同的位置添加新的响应。

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

System.out.println(responseList.get(ans));
西门胜涝
2023-03-14

我不确定这是否回答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(get答案());

孙风畔
2023-03-14

您可以拥有一个字符串数组,并根据输入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 */
   }
 类似资料:
  • 我是java的新手,我正在编写这个简短的程序,您可以在其中猜测1到10之间的数字。正确的数字存储为整数。如果您猜测较低的数字,它应该说“正确的数字较高”,如果您猜测较高,它应该说“正确的数字较低”。这是我所拥有的: 所以很明显这是行不通的,因为如果你输入一个更小的数字,它会跳到下一个数字,即使这个数字更大,它也是正确的。那么,我如何解决这个问题,让它检查两个语句呢?抱歉解释得不好。谢了。

  • 到目前为止,我的计划是: 现在我需要它做的是生成一个从华氏度到摄氏度的20个温度转换表。如果用户输入 0,下面是输出可能是什么样子的前 3 行的示例: 华氏温度:0摄氏度:-17.78 华氏度: 5 摄氏度: -15.00 华氏:10摄氏度-12.22度 等… 问题是,如果输入大于20,它将不会循环正确的次数。 下面是一个例子,说明如果用户输入5: 输出: 输入您的起始温度(华氏:5)。 华氏摄氏

  • 问题内容: 我正在做一个游戏,我需要每3秒更新一次JProgressBar。为此,我使用while循环。问题是我的程序由于while循环而冻结(我在其他问题中读过它,它们没有帮助我解决此问题)。我不知道该怎么解决。这是我的代码: 你能帮我吗? 问题答案: 您应该在自己的线程中运行循环: 顺便说一句:如果您没有在方法中使用“ String [] args”,则没有理由在方法中声明它。

  • 您好,我对jquery没有什么问题。首先,我有: 大众BORA 1.9TDI 1990 1995 奥迪A3 2.0TFSI 2006 2008 但我想实现: VW BORA 1.9TDI 1990 VW BORA 1.9TDI 1991 VW BORA 1.9TDI 1992 VW BORA 1.9TDI 1993 VW BORA 1.9TDI 1994 VW BORA 1.9TDI 1995 A

  • 本文向大家介绍微信小程序中页面FOR循环和嵌套循环,包括了微信小程序中页面FOR循环和嵌套循环的使用技巧和注意事项,需要的朋友参考一下 微信小程序中页面FOR循环和嵌套循环 单个循环 嵌套循环 如果缺少 wx:key 页面在调试下可以看到黄色警告信息 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • for while loop break 与 continue label for for 语句用于遍历一个迭代器。 for var in iterator { code } Rust 迭代器返回一系列的元素,每个元素是循环中的一次重复。然后它的值与 var 绑定,它在循环体中有效。每当循环体执行完后,我们从迭代器中取出下一个值,然后我们再重复一遍。当迭代器中不再有值时,for 循环结束。