Java:条件语句和关系运算符

Java:条件语句和关系运算符,java,Java,我正在努力完成Jetbrains创建的以下任务: 给定三个自然数A、B、C,确定是否存在一个具有这些边的三角形。 如果三角形存在,则输出YES字符串,否则输出NO。 如果三角形的两条边之和大于第三条边,则三角形有效。如果三个边是A、B和C,则应满足三个条件 A+B>C A+C>B B+C>A 示例输入1: 3 4 5 样本输出1: YES 现在,我的代码如下: import java.util.Scanner; class Main { public static void mai

我正在努力完成Jetbrains创建的以下任务:

给定三个自然数A、B、C,确定是否存在一个具有这些边的三角形。 如果三角形存在,则输出YES字符串,否则输出NO。 如果三角形的两条边之和大于第三条边,则三角形有效。如果三个边是A、B和C,则应满足三个条件

A+B>C A+C>B B+C>A 示例输入1:

3
4
5
样本输出1:

YES
现在,我的代码如下:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        // put your code here
    
        Scanner scanner = new Scanner(System.in);
    
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
    
        boolean aCheck = b + c > a;
        boolean bCheck = a + c > b;
        boolean cCheck = a + b > c;
    
       if (aCheck || bCheck || cCheck) {
           System.out.println("YES");
       } else {
           System.out.println("NO");
       }
    }
}
从逻辑上讲,一切似乎都是正确的,但我的输入有错误

一, 2. 三,

我真的不知道我错过了什么。我的代码不正确吗?

如果aCheck | | bCheck | | | cCheck通过代码如果aCheck是真的,因为它基于OR运算符,三角形是可行的,您需要通过所有检查。您应该使用AND运算符:

if (aCheck && bCheck && cCheck)
这是@sleepToken在评论中提出的,但是,如果您使用&&而不是&,那么一旦某些检查为假,它就会失败。

将条件更改为: 如果aCheck&&bCheck&&cCheck{}

如果要坚持使用| |运算符,请将其更改为:
如果a+B你有哪些错误?你能贴出来吗?你误读了提示。将if-aCheck | | bCheck | | cCheck更改为if-aCheck&bCheck&ccheckw您得到了什么错误?请编辑问题以包含完整的错误消息。该代码似乎不会输出任何错误。你真的是说你有一个错误,还是说你没有得到正确的答案?好的,但任务是检查三角形是否可行,在这种情况下,检查它是否可行。因此,应该执行if,因为aCheck=true并且只有一个条件必须为true。使用&¬总是会导致代码无法通过,因为至少会有一个错误?我的想法不合逻辑吗?好吧,我的理解有很大的错误,我似乎认为只有一个条件必须是真的,但正如任务中所述,所有条件都必须是真的,对不起。但谢谢你的意见!