Java if语句中的JOptionPane
对于我的作业,我使用JOptionPane要求用户输入三角形的三条边。然后,假设程序使用JOptionPane告诉他们三角形的类型(等边三角形、直角三角形、锐角三角形、钝角三角形和等腰三角形,但等腰三角形也可以是直角三角形、钝角三角形或锐角三角形),并计算面积 当它是等边的时候,它回来告诉我它是等边的,但它也告诉我它是等腰的3倍。尽管我只有等腰JOptionPane和其他类型的三角形 我的另一个问题是,当它是正确的、尖锐的或迟钝的时候,它会跳过JOptionPane告诉我它是什么类型的,而只是告诉我它是等腰的Java if语句中的JOptionPane,java,swing,joptionpane,Java,Swing,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)是斜边?在对照毕达哥拉斯定理检查输入之前,您可能必须检查输入以确定哪个最大。