亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果語句在程序中無法正常工作以確定三角形類型

如果語句在程序中無法正常工作以確定三角形類型

慕的地6264312 2022-09-07 16:30:03
我有一個任務來編寫一個程序,該程序使用我必須編寫的方法triangleType,以便從用戶那里獲取三個int輸入并輸出三角形類型。在該方法中,我首先需要按升序對整數進行排序,以便我需要使用的比較能夠正常工作。我知道我在代碼中正確地完成了排序部分,因為我在開始嘗試確定三角形類型之前就對其進行了測試。我需要使用這些比較來找到三角形類型:“如果A + B<= C,那么邊不代表有效的三角形。如果 A = C(所有邊的長度必須相同),則三角形為等邊。如果 A = B 或 B = C,則三角形為等腰;否則三角形是SCALENE“由于某些原因,我在triangleType方法末尾的if語句無法正常工作,并且我得到了各種輸出,包括”無效三角形“以及其他輸出,無論我輸入的整數如何。package trianglemethod;import javax.swing.JOptionPane;public class TriangleMethod{    public static void main(String[] args)    {        String wordaA, wordbB, wordcC, answer;        do         {           System.out.println("Please enter all 3 side lengths of the triangle in any order.");           wordaA = JOptionPane.showInputDialog("Enter side 1:");           wordbB = JOptionPane.showInputDialog("Enter side 2:");           wordcC = JOptionPane.showInputDialog("Enter side 3:");           int aA = Integer.parseInt(wordaA);           int bB = Integer.parseInt(wordbB);           int cC = Integer.parseInt(wordcC);           triangleType(aA,bB,cC);           System.out.println("Would you like to enter another triangle?");           answer = JOptionPane.showInputDialog("Would you like to enter another triangle?");        } while (answer.equalsIgnoreCase("yes"));    }    static void triangleType(int aA, int bB, int cC) {        int a=0, b=0, c=0;        if (aA > bB && aA > cC)        {            if (bB > cC)            {              a = cC;              b = bB;              c = aA;            }            else if (cC > bB)            {              a = bB;              b = cC;              c = aA;            }        }        if (bB > aA && bB > cC)        {            if (aA > cC)            {              a = cC;              b = aA;              c = bB;            }            else if (cC > aA)            {              a = aA;              b = cC;              c = bB;            }        }
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

我很困惑,你為什么不能干脆做


        if (a == b && b == c) {

            JOptionPane.showMessageDialog(null,"Triangle is Equilateral");

        } else if ((a == b && a != c) || (a == c && a != b) || (b == c && b != a)) {

            JOptionPane.showMessageDialog(null, "Triangle is Isosceles");

        } else if (a != b && a != c && b != c){

            JOptionPane.showMessageDialog(null,"Triangle is Scalene");

        } else {

            JOptionPane.showMessageDialog(null,"Invalid Triangle");

        }


查看完整回答
反對 回復 2022-09-07
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

實際上有2個問題。


假設 a=5、b=5 和 c=5。你的代碼現在的工作方式是檢查:這是真的,所以它打印“三角形是等邊的”。然后它檢查:這也是真的,所以它打印“三角形是等腰”。


為了防止它在找到您要查找的結果后檢查下一個 if 語句,后面的所有 if 語句都必須是“else if”語句。如果上面的所有 else if 語句都是 false,則最終的 “else” 代碼將運行。在你的情況下,它會運行與你的第三個陳述是假的一樣長。

if (a==c)

if (a==b || b==c)

同樣正如Andronicus所指出的,如果任何一側等于另一側,則變量a,b和c將保持為0,因為您的代碼僅檢查不等式


這里是排序部分的工作代碼:

if(aA>=bB && aA>=cC){

    a = aA;

    if(bB >= cC){

        b = bB;

        c = cC;

    } else {

        b = cC;

        c = bB;

    }

} else if (bB >= aA  && bB >= cC){

    a = bB;

    if(aA >= cC){

        b = aA;

        c = cC;

    } else {

        b = cC;

        a = aA;

    }

} else {

    a = cC;

    if(cC >= aA){

        b = cC;

        c = aA;

    } else {

        b = aA;

        c = cC;

    }

}


查看完整回答
反對 回復 2022-09-07
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您有三個不同的語句,分別進行評估。相反,從問題的描述來看,聽起來你需要一個具有多個條件分支(即子句)的單個語句:ififelse if


if (a+b<=c)

{

    JOptionPane.showMessageDialog(null,"Invalid Triangle");

} else if (a==c) {

       JOptionPane.showMessageDialog(null,"Triangle is Equilateral"); 

} else if (a==b || b==c){

        JOptionPane.showMessageDialog(null, "Triangle is Isosceles");

} else {

    JOptionPane.showMessageDialog(null,"Triangle is Scalene");

}    


查看完整回答
反對 回復 2022-09-07
  • 3 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號