gpt4 book ai didi

java - If 语句在程序中无法正常工作以确定三角形类型

转载 作者:行者123 更新时间:2023-11-30 05:42:48 25 4
gpt4 key购买 nike

我有一个任务要编写一个程序,该程序使用 triangleType 方法,我必须编写该方法来从用户处获取三个 int 输入并输出三角形类型。在该方法中,我首先需要按升序对整数进行排序,以便我需要使用的比较能够正确工作。我知道我正确地完成了代码中的排序部分,因为我在开始尝试确定三角形类型之前就对其进行了测试。我需要使用这些比较来查找三角形类型:“如果 A + B <= C,则边不代表有效的三角形。如果 A = C(所有边必须具有相同的长度),则三角形是等价。如果 A = B 或 B = C,则三角形为等腰三角形;否则三角形为比例三角形”由于某些原因,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;
}
}
if (cC > aA && cC > bB)
{
if (aA > bB)
{
a = bB;
b = aA;
c = cC;
}
else if (bB > aA)
{
a = aA;
b = bB;
c = cC;
}
}

if (a+b<=c)
{
JOptionPane.showMessageDialog(null,"Invalid Triangle");
} if (a==c) {
JOptionPane.showMessageDialog(null,"Triangle is Equilateral");
} if (a==b || b==c){
JOptionPane.showMessageDialog(null, "Triangle is Isosceles");
}
else {
JOptionPane.showMessageDialog(null,"Triangle is Scalene");
}
}
}

最佳答案

您有三个不同的 if 语句,它们是单独评估的。相反,从问题的描述来看,听起来您需要一个带有多个条件分支的 if 语句(即 else 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");
}

关于java - If 语句在程序中无法正常工作以确定三角形类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370676/

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