Java if语句中的JOptionPane

Java if语句中的JOptionPane,java,swing,joptionpane,Java,Swing,Joptionpane,对于我的作业,我使用JOptionPane要求用户输入三角形的三条边。然后,假设程序使用JOptionPane告诉他们三角形的类型(等边三角形、直角三角形、锐角三角形、钝角三角形和等腰三角形,但等腰三角形也可以是直角三角形、钝角三角形或锐角三角形),并计算面积 当它是等边的时候,它回来告诉我它是等边的,但它也告诉我它是等腰的3倍。尽管我只有等腰JOptionPane和其他类型的三角形 我的另一个问题是,当它是正确的、尖锐的或迟钝的时候,它会跳过JOptionPane告诉我它是什么类型的,而只是告

对于我的作业,我使用JOptionPane要求用户输入三角形的三条边。然后,假设程序使用JOptionPane告诉他们三角形的类型(等边三角形、直角三角形、锐角三角形、钝角三角形和等腰三角形,但等腰三角形也可以是直角三角形、钝角三角形或锐角三角形),并计算面积

当它是等边的时候,它回来告诉我它是等边的,但它也告诉我它是等腰的3倍。尽管我只有等腰JOptionPane和其他类型的三角形

我的另一个问题是,当它是正确的、尖锐的或迟钝的时候,它会跳过JOptionPane告诉我它是什么类型的,而只是告诉我它是等腰的

package assignment.ii;
import javax.swing.JOptionPane;
import java.lang.*;
public class AssignmentII

    {

public static void main(String[] args) {

    int a = Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter a side of the triangle "));
    int b = Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter a side of the triangle "));
    int c = Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter a side of the triangle "));
    double s = (.5*(a+b+c));

    if(a==b){
            if (b==c)
                JOptionPane.showMessageDialog(null, "The triangle is a equilateral triangle");

    }else if (((a*a)+(b*b)) == (c*c)) { 
                JOptionPane.showMessageDialog(null, "The triangle is a right triangle");
                if (a==b)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (b==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (a==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");

    }else if (((a*a)+(b*b))<(c*c)){    
                JOptionPane.showMessageDialog(null, "The triangle is an obtuse triangle");
                if (a==b)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (b==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (a==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");

    }else if (((a*a)+(b*b))>(c*c))             
                JOptionPane.showMessageDialog(null, "The triangle is an acute triangle");
                if (a==b)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (b==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");    
                if (a==c)
                JOptionPane.showMessageDialog(null, "The triangle is a Isosceles triangle");
    double d;
    d = ((s)*(s - a)*(s - b)*(s - c));

    JOptionPane.showMessageDialog(null, "The area of the triangle is: " + Math.sqrt(d));


     } 
     }
package assignment.ii;
导入javax.swing.JOptionPane;
导入java.lang.*;
公务舱分配2
{
公共静态void main(字符串[]args){
int a=Integer.parseInt(JOptionPane.showInputDialog(null,“请输入三角形的一个边”);
intb=Integer.parseInt(JOptionPane.showInputDialog(null,“请输入三角形的一个边”);
int c=Integer.parseInt(JOptionPane.showInputDialog(null,“请输入三角形的一个边”);
双s=(.5*(a+b+c));
如果(a==b){
如果(b==c)
showMessageDialog(null,“三角形是等边三角形”);
}如果((a*a)+(b*b))==(c*c)){
showMessageDialog(null,“三角形是直角三角形”);
如果(a==b)
showMessageDialog(null,“三角形是等腰三角形”);
如果(b==c)
showMessageDialog(null,“三角形是等腰三角形”);
如果(a==c)
showMessageDialog(null,“三角形是等腰三角形”);
}如果((a*a)+(b*b))(c*c))
showMessageDialog(null,“三角形是锐角三角形”);
如果(a==b)
showMessageDialog(null,“三角形是等腰三角形”);
如果(b==c)
showMessageDialog(null,“三角形是等腰三角形”);
如果(a==c)
showMessageDialog(null,“三角形是等腰三角形”);
双d;
d=((s)*(s-a)*(s-b)*(s-c));
showMessageDialog(null,“三角形的面积是:”+Math.sqrt(d));
} 
}

比较三角形边的“if语句”前面肯定缺少“else”关键字。试试这个:


如果(a==b)
showMessageDialog(null,“三角形是等腰三角形”)
else如果(b==c) showMessageDialog(null,“三角形是等腰三角形”)
else如果(a==c) showMessageDialog(null,“三角形是等腰三角形”);

或者更简洁地说:


如果(a==b | | b==c | | c==a)
showMessageDialog(null,“三角形是等腰三角形”);

另一个问题是

如果(a==b){
如果(b==c){
}
}
不一样

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


在第一种情况下,如果a==b但b!=在第二种情况下,代码将跳转到下一个
语句,如果
语句,则不会执行任何操作。

另一种组织方式是分别检查每个属性。创建单独的方法来确定您需要知道的每件事情。那么,并非所有的案例都混在一起了。比如:

int angle = getTriangleAngle(a,b,c);
boolean isocelesTriangle = isIsocelesTriangle(a,b,c);
boolean equalateralTriangle = isEqualateralTriangle(a,b,c);
int area = calcTriangleArea(a,b,c);

然后,您可以根据这些值构建输出字符串

如果
缺少两个花括号,则为最后一个
else。当
a==b
但是
b=c
不会分析任何内容。仅供参考:您不需要
导入java.lang.*操作。您是否假设第三个条目(c)是斜边?在对照毕达哥拉斯定理检查输入之前,您可能必须检查输入以确定哪个最大。