时间设置为hh:mm:ss,所以时间是23:50:45,一旦到达午夜,它将变为00:00:00。我考试的练习题要求我写一个方法来做到这一点,我的逻辑是正确还是远离,我关心我的if else语句
public void increment()
{
if(seconds <= 59)
{
seconds ++;
}
else if (seconds >= 60 && minutes<= 59)
{
seconds == 0;
minutes ++;
}
if(minutes >= 60 && hours <= 23)
{
hours++;
minutes == 0;
}
else
{
hours == 0;
}
}
答案 0 :(得分:3)
您正在使用'=='
等价运算符执行赋值操作。纠正......
而不是minutes==0;
,它应该是minutes = 0;
,而不是在分配'0'时。 ==
将评估为boolean
。您还在某个地方使用了secounds,而不是seconds
。
请参阅this!
答案 1 :(得分:2)
你可以更容易地做同样的事情。
public void increment() {
seconds ++;
if (seconds >= 60)
{
seconds = 0;
minutes ++;
}
if(minutes >= 60)
{
hours++;
minutes = 0;
}
if(hours >= 24)
{
hours = 0;
}
}
答案 2 :(得分:1)
我认为你的逻辑错了......
if(secounds <= 59)
{
seconds ++;
}
将导致秒数转为60 ...或者删除else
后面的else if
...
正如anirudh4444所指出的,要分配给0,你应该使用=
,而不是==
我会删除所有<=
条件。并将最后一个替换为
if (hours >= 24) {
hours =0;
}
此外,拼写秒正确(在某些地方拼写错误拼写错误...)
您的代码变为:
public void increment()
{
seconds ++;
if (seconds >= 60)
{
seconds = 0;
minutes ++;
}
if(minutes >= 60)
{
hours++;
minutes = 0;
}
if (hours >= 24)
{
hours = 0;
}
}