gpt4 book ai didi

java - 我的 Java 代码出现不需要的输出 "if statement"(太长,无法在标题中描述)

转载 作者:行者123 更新时间:2023-12-02 09:22:33 25 4
gpt4 key购买 nike

编辑:添加更多代码

(对java非常陌生,我没有任何教科书。我正在根据我在网上找到的内容拼凑它的工作原理,请友善。)

我正在尝试为我在大学的 Java 类(class)制作一个“时间计算器”。 (这是我们的任务)。我必须像这样输出:(天)HH:MM:SS。如果没有“天”,则为 HH:MM:SS,如果没有“小时”,则为 MM:SS,依此类推。

但是,在我的代码中,只有秒而没有分钟、小时或天的 if 语句无法正确执行。如果我输入 40 秒,它将输出:0:00:40 小时。我该如何解决?我知道 If/If else 语句有问题。

我尝试通过输入 1-60 之间的各种数字来解决问题,但它总是返回“0:00:(1-60) 小时”。我不知道从哪里开始解决这个问题。

final int x = 9;
final int n_Days;
final int n_Hours;
final int n_Minutes;
final int n_Seconds;

n_Days = total_seconds / 86400;
n_Hours = (total_seconds % 86400 ) / 3600;
n_Minutes = ((total_seconds % 86400 ) % 3600 ) / 60;
n_Seconds = ((total_seconds % 86400 ) % 3600 ) % 60;

if (n_Days == 0) {

if (n_Minutes < x || n_Seconds < x) {
String padded = String.format("%02d" , n_Minutes);
String padded2 = String.format("%02d" , n_Seconds);

System.out.print("You entered " + total_seconds + " seconds, which is " + n_Hours + " hours, " + n_Minutes + " minutes, and " + n_Seconds + " seconds.");
System.out.print("\n");
System.out.print(n_Hours + ":" + padded + ":" + padded2 + " hours.");
}
}
else if (n_Days == 0 && n_Hours == 0) {

if (n_Minutes < x || n_Seconds < x) {
String padded = String.format("%02d" , n_Minutes);
String padded2 = String.format("%02d" , n_Seconds);

System.out.print("You entered " + total_seconds + " seconds, which is " + n_Minutes + " minutes, and " + n_Seconds + " seconds.");
System.out.print("\n");
System.out.print(padded + ":" + padded2);
}
}

else if (n_Days == 0 && n_Hours == 0 && n_Minutes == 0) {


System.out.print("You entered " + total_seconds + " seconds, which is " + n_Seconds + " seconds.");
}

else {
if (n_Minutes < x || n_Seconds < x) {
String padded = String.format("%02d" , n_Minutes);
String padded2 = String.format("%02d" , n_Seconds);

System.out.print("You entered " + total_seconds + " seconds, which is " + n_Days + " days, " + n_Hours + " hours, " + padded + " minutes, and " + padded2 + " seconds.");
System.out.print("\n");
System.out.print(n_Days + " days " + n_Hours + ":" + padded + ":" + padded2 + " hours.");
}
}

如果我输入的总秒数小于 60,那么我希望第二个“else-if”语句像这样执行:

“您输入了 30 秒,即 30 秒。”

最佳答案

if (n_Days == 0)

这是您的第一个 if 语句。如果 n_Days0,它将被执行,而且最重要的是 - else 语句永远不会执行。因此,如果 n_Days0 并且 n_Hours 也为 0if (n_Days == 0) 将被执行,并且 else if... 语句将被跳过。

您只需更改语句的顺序 - 或嵌套它们 - 就可以了。

关于java - 我的 Java 代码出现不需要的输出 "if statement"(太长,无法在标题中描述),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58584145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com