java - 获取每周温度 - ArrayList 问题
问题描述
我是任何类型的计算机编程/语言的全新初学者(尝试改变职业)。我正在通过在线学校学习编程 1,我们使用 Zybooks(我没有发现它很有帮助,所以我一直在使用其他资源)。这是本周作业的提示:
开发一个 Java 程序,以一周日平均气温的形式存储数据。将日期和平均温度存储在两个不同的数组列表中。您的程序应该提示用户一周中的哪一天(周一到周日),并显示每一天的日期和温度。如果输入“周”,程序的输出应提供每天的温度和每周的平均温度。将循环和决策结构与数组结合使用来完成此分配。
以下是我到目前为止的代码。我只是想知道 1)我是否走在正确的轨道上,以及 2)如何打印出我的临时工以与工作日相匹配?我想过做一个 addList 的事情,但不会用临时工代替工作日吗?我有很多问题,我正在努力寻找一位导师来帮助我。与此同时,我想我会问这个社区......尤其是因为我的在线老师忽略了我所有的电子邮件和问题。好有趣...
import java.util.ArrayList;
import java.util.Scanner;
public class weeklyTemps {
public static void main(String[] args) {
final int NUM_TEMPS = 7;
@SuppressWarnings("resource") //not sure where this came from...figure out later
Scanner scnr = new Scanner(System.in);
ArrayList<String> weekDays = new ArrayList<>();
ArrayList<Integer> weekTemps = new ArrayList<>();
String wkDay = "";
int averageTemp = 0;
int sumVal = 0;
int i = 0;
weekDays.add("Monday");
weekDays.add("Tuesday");
weekDays.add("Wednesday");
weekDays.add("Thursday");
weekDays.add("Friday");
weekDays.add("Saturday");
weekDays.add("Sunday");
weekTemps.add(75); //temps for the week
weekTemps.add(80);
weekTemps.add(77);
weekTemps.add(73);
weekTemps.add(83);
weekTemps.add(81);
weekTemps.add(79);
for (i = 0; i < weekDays.size(); ++i) {
System.out.print("Enter the week day: ");
wkDay = scnr.nextLine();
}
for (i = 0; i < weekTemps.size(); ++i) {
//sumVal = weekTemps //figure out how to add these together later w/out writing them all out
averageTemp = sumVal / NUM_TEMPS;
}
if (wkDay.equals(weekDays())) {
System.out.print("The temperature for that day is " + weekTemps.get(0) + " degrees.");
}
else {
System.out.print("The average temperature for the week is " + averageTemp + " degrees.");
}
return;
}
private static Object weekDays() { //what is this...i did not write this...
// TODO Auto-generated method stub
return null;
}
}
解决方案
我的解决方案:
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
ArrayList<Integer> dayTemps = new ArrayList<>();
ArrayList<String> dayNames = new ArrayList<>();
dayNames.add("Monday");
dayNames.add("Tuesday");
dayNames.add("Wednesday");
dayNames.add("Thursday");
dayNames.add("Friday");
dayNames.add("Saturday");
dayNames.add("Sunday");
dayTemps.add(75); //temps for the week
dayTemps.add(80);
dayTemps.add(77);
dayTemps.add(73);
dayTemps.add(83);
dayTemps.add(81);
dayTemps.add(79);
Scanner scn = new Scanner(System.in);
System.out.println("Enter the week day: ");
String wkDay = scn.nextLine();
scn.close(); //It is important to close the resources we use, preventing leak
int indexOfWeekDay = dayNames.indexOf(wkDay); //get the in index of the day
if(indexOfWeekDay != -1){ //if the name cannot be found, -1 is returned
//User asked us about specific weekday:
System.out.print("The temperature for " + dayNames.get(indexOfWeekDay) +" is " + dayTemps.get(indexOfWeekDay) + " degrees.");
}else if(wkDay.equals("week")){
//User asked us about average:
//Only bother calculating average if asked ;)
float averageTemp = 0; // I would recommend float for percision
for (Integer dayTemp : dayTemps) { //This is called an enchanted for loop. I suggest looking it up ;)
averageTemp += dayTemp;
}
averageTemp /= dayTemps.size();
System.out.print("The average temperature for the week is " + averageTemp + " degrees.");
}else{
//We can't recognise the entry
System.out.println("Wrong entry: " + wkDay);
}
}
}
推荐阅读
- jooq - JOOQ:将列标记为“已弃用”?
- python - Pandas Resample 可以用于不同的日期范围吗?
- excel - 在 Excel 中手动输入超时
- php - 由于“禁止访问!”,无法访问我的管理员。
- reactjs - 命名导出 withRouter()
- c++ - 重载的模板函数没有为特定类型选择正确的版本
- javascript - 如何在 Google 表格的对话框中添加重置按钮
- c# - 如果类型属性等于 null 或 0,则返回 false
- asp.net-core - ASP.NET Core - 2.1 到 2.2 问题
- oracle - Oracle Inactive Session 持有 LOCK,但没有命令,并且有一个 Active Transaction