【发布时间】:2019-05-29 02:50:22
【问题描述】:
我有这个练习代码来计算未来的小时数:
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
String amPm;
System.out.println("Write an hour (lower o equal to 12) ");
int startHour = scanner.nextInt();
System.out.println("write the number of hours to sum ");
scanner.nextLine();
int hoursToSum = scanner.nextInt();
System.out.println("am or pm? (1/0)");
int selection = scanner.nextInt();
if (selection == 1) {
amPm = ".am";
}
else {
amPm = ".pm";
}
for(int i = 0; i == hoursToSum; i++) {
startHour ++;
if (startHour > 12) {
startHour = 1;
if (amPm.equals(".am")) {
amPm = ".pm";
}
else {
amPm = ".am";
}
}
}
System.out.println("it´s gonna be: " + startHour + amPm);
}
但它不起作用,除了值 12 到 startHour 和 0 到 hourToSum。
我尝试了 while 循环,它成功了!
我知道 for 和 while 循环都能够执行相同的任务。 那么,为什么会这样呢?
int i = 0;
while(i < hoursToSum) {
startHour ++;
if (startHour > 12) {
startHour = 1;
if (amPm.equals(".am")) {
amPm = ".pm";
}
else {
amPm = ".am";
}
}
i ++;
}
【问题讨论】:
-
i == hoursToSum与i < hoursToSum不一样;所以你的while和for行为不同。 -
感谢 Amadan,它成功了
-
请正确格式化这个难以辨认的混乱。