簡體   English   中英

Java:條件語句和關系運算符

[英]Java: Conditional Statement and relational Operators

我正在努力完成 Jetbrains 創建的以下任務:

給定三個自然數 A、B、C。確定是否存在具有這些邊的三角形。 如果三角形存在,則輸出 YES 字符串,否則輸出 NO。 如果三角形的兩條邊之和大於第三條邊,則該三角形是有效的。 如果三個邊是A、B和C,那么應該滿足三個條件。

  1. A + B > C
  2. A + C > B
  3. 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");
       }
    }
}

從邏輯上講,一切似乎都是正確的,但我在輸入上遇到錯誤

1 2 3

我真的不確定我可能錯過了什么。 我的代碼不正確嗎?

如果 aCheck 為真,則代碼if (aCheck || bCheck || cCheck)通過,因為它基於 OR 運算符,要使三角形可行,您需要通過所有檢查。 您應該使用 AND 運算符:

if (aCheck && bCheck && cCheck)

這是@sleepToken 在評論中提出的,但是,如果您使用&&而不是&它會在某些檢查為假時立即失敗。

將條件更改為: if (aCheck && bCheck && cCheck) {}

如果你想堅持 || 運算符然后將其更改為: if ( !(a+b<=c || b+c<=a || a+c<=b) ) {}

安息吧!!

請看一下我的代碼:

import java.util.Scanner; 
class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // start coding here
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        int C = scanner.nextInt();
        if(A + B > C && A + C > B && B + C > A){
            System.out.println("YES");
        }
        else{
            System.out.println("NO");
        }
    }
}

你應該使用&&而不是||

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM