【问题标题】:Array List & Conditional Statement for specific user Input特定用户输入的数组列表和条件语句
【发布时间】:2019-11-23 03:28:08
【问题描述】:

我是 Java 的新手,我目前正在做一个任务,我在其中创建一个数组列表来存储用户输入的星期几和每日温度。如果用户输入单词“week”,我很难创建一个条件语句,该语句将打印输入的天数+温度表以及平均温度。我已经能够打印所有这些信息,但这是我正在努力解决的条件语句。

我尝试使用 if-else 和 do-while 循环来创建条件,但是我继续得到错误,或者例如使用下面的代码,如果输入“week”,则不会发生任何事情。我一直在使用“days.equals”,但我相信这是我可能出错的地方。

   ArrayList<String> days = new ArrayList<String>(); 
   ArrayList<Double> temp = new ArrayList<Double>(); 

   days.add("Monday");
   days.add("Tuesday");
   days.add("Wednesday");
   days.add("Thursday");
   days.add("Friday");
   days.add("Saturday");
   days.add("Sunday");

  Scanner scnr = new Scanner(System.in);

  System.out.println("Please enter the temperature for Monday through 
  Sunday below.\n" );

  for (int i = 0;i < 7; i++) { // Loop 7 times for each day of the week

     System.out.print("Enter day of week: ");

     days.add(scnr.next());

     System.out.print("Enter temperature: ");

     temp.add(scnr.nextDouble());

  }

  System.out.println("-----------------------------");
  System.out.println("Day\t" + "\tTemperature");
  System.out.println("-----------------------------");

  for(int i = 0; i < 7; i++) {

     System.out.println(days.get(i));
     System.out.print("\t" + "\t");
     System.out.println(temp.get(i));

  }
  double sum = 0.0;

  for ( int i = 0; i < temp.size(); i++) {
      sum += temp.get(i);

  }
  double average = (double) sum / temp.size();

  do { 
      System.out.println("\n" + "Average temperature = " + average);
  }
  while(days.equals("Week"));

  }  

  }

我希望程序在用户输入单词“week”时输出以下内容。

-----------------------
Day         Temperature
-----------------------
Monday      90.0

Tuesday     94.0

Wednesday   89.0

Thursday    84.0

Friday      82.0

Saturday    85.0

Sunday      88.0

Average temperature = 87.42857142857143

【问题讨论】:

  • 你可以在你的作业中使用Map接口吗?如果是,我建议使用Map&lt;String, List&lt;Double&gt;&gt;。键是星期几,值是当天的温度列表。

标签: java arraylist conditional-statements


【解决方案1】:

如果我正确理解了您的问题,那么您需要做的是在获得几天的温度后等待用户输入,检查该值是否为“周”,然后才打印您的值。 以下内容应该可以工作。

ArrayList<String> days = new ArrayList<String>(); 
ArrayList<Double> temp = new ArrayList<Double>(); 

days.add("Monday");
days.add("Tuesday");
days.add("Wednesday");
days.add("Thursday");
days.add("Friday");
days.add("Saturday");
days.add("Sunday");

Scanner scnr = new Scanner(System.in);

System.out.println("Please enter the temperature for Monday through 
  Sunday below.\n" );

for (int i = 0;i < 7; i++) { // Loop 7 times for each day of the week
   System.out.print("Enter day of week: ");
   days.add(scnr.next());
   System.out.print("Enter temperature: ");
   temp.add(scnr.nextDouble());
}

// You ask for user input here
System.out.print("Enter 'week' here to see temperature details: ");
String userChoice = scnr.next();

while ("week".equalsIgnoreCase(userChoice)) {

  System.out.println("-----------------------------");
  System.out.println("Day\t" + "\tTemperature");
  System.out.println("-----------------------------");

  for(int i = 0; i < 7; i++) {

     System.out.println(days.get(i));
     System.out.print("\t" + "\t");
     System.out.println(temp.get(i));

  }
  double sum = 0.0;

  for ( int i = 0; i < temp.size(); i++) {
      sum += temp.get(i);
  }
  double average = (double) sum / temp.size();
  System.out.println("\n" + "Average temperature = " + average);

  //Ask user if he'd like to see the information again.
  System.out.print("Enter 'week' here to see temperature details again: ");
  userChoice = scnr.next();
}  

【讨论】:

  • 非常感谢,这真的很有帮助!我将回顾我的课程材料,以确保我明白我哪里出错了。真的,再次感谢您!
猜你喜欢
  • 1970-01-01
  • 2017-02-03
  • 2021-01-29
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2018-09-30
相关资源
最近更新 更多