gpt4 book ai didi

java - if 表达式算法出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:02 25 4
gpt4 key购买 nike

我想传入xyz的值,让它们通过算法。但是我得到一个错误。我认为我在做违法的事情,但我不确定。

这个语句有错误:

if((istrue1)||(istrue2&&istrue3)){
;
}

我的完整代码是:

package com.company;

public class Main {

public static void main(int x, int y, int z) {
boolean istrue1, istrue2, istrue3;

if((istrue1=(x >=1 && x<=31)) || (istrue2=(y>=1 && y<=31)) || (istrue3=(z >= 1 && z<=31)));{
if((istrue1)||(istrue2&&istrue3)){
;
}
}
}
}

最佳答案

代码中(至少)有两个问题(但我怀疑只有第二个是您的问题的一部分。

第一个问题是你的外部 if 语句有一个 ';'在最后。因此,尽管从缩进来看您已经嵌套了 if 语句,但实际上并非如此。

第二个问题有点微妙,它与 if 语句短路对其条件的评估有关。

你有

if 
(
a = first_condition ||
b = second_condition ||
c = third_condition
)
{
...do stuff
}

这是合法的语法,但如果 first_condition 为真,则编译器知道整个 if 条件为真,因此它不会对后两个子句求值。这意味着,如果 first_condition 为真,则 'b' 和 'c' 都不会被赋值。

我的建议是重做代码

boolean a = first_condition
boolean b = second_condition
boolean c = third_condition

if (a || b || c)
{
//do stuff
}

关于java - if 表达式算法出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32685452/

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