刚学java,
这是判断三角形是什么三角形的代码;
结束程序选择n时候都会出现小瑕疵,不知道是哪里出来问题;
大家可以运行下,每多判断一次就会多出现一个结束程序。
class sjx {
double a, b, c;
public static void bianchang(double x, double y, double z) {
if (x + y > z) {
System.out.println("可以构成三角形");
sjxsort(x, y, z);
} else {
System.out.println("不可以构成三角形");
}
xunhuan();
}
public static void sjxsort(double a, double b, double c) {
double bian[] = new double[3];
bian[0] = a;
bian[1] = b;
bian[2] = c;
Arrays.sort(bian);
double e = bian[2] * bian[2];
double v = bian[1] * bian[1] + bian[0] * bian[0];
if (bian[2] == bian[1] && bian[1] == bian[0]) {
System.out.println("这是一个等边三角形,边长为:" + bian[2]);
return;
}
if (e == v && bian[1] == bian[0]) {
System.out.println("这是一个等腰直角三角形,最长的边为:" + bian[2]);
return;
}
if (e > v && bian[1] == bian[0]) {
System.out.println("这是一个等腰钝角三角形,最长的边为:" + bian[2]);
return;
}
if (e < v && bian[1] == bian[0]) {
System.out.println("这是一个等腰锐角三角形,最长的边为:" + bian[2]);
return;
}
if (e == v) {
System.out.println("这是一个直角三角形,最长的斜边为:" + bian[2]);
return;
}
if (e > v) {
System.out.println("这是一个钝角三角形,最长的边为:" + bian[2]);
return;
}
if (e < v) {
System.out.println("这是一个锐角三角形,最长的边为:" + bian[2]);
}
}
public static void xunhuan() {
Scanner input2 = new Scanner(System.in);
System.out.println("=====================================");
System.out.print("是否要继续判断 (y/n):");
char zi;
zi = input2.next().charAt(0);
switch (zi) {
case 'y':
System.out.println("=====================================");
System.out.println("你选择了继续进行判断");
java_判断三角形.main(null);
case 'n':
System.out.println(" ——————————————————");
System.out.println(" | 你选择了结束 |");
System.out.println(" ——————————————————");
break;
}
}
}
public class java_判断三角形 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
sjx A = new sjx();
System.out.println("请输入三条边长");
System.out.print("请输入第一条边长:");
double x = A.a = input.nextDouble();
System.out.print("请输入第二条边长:");
double y = A.b = input.nextDouble();
System.out.print("请输入第三条边长:");
double z = A.c = input.nextDouble();
sjx.bianchang(x, y, z);
}
}
正常现象,因为你写的是一个递归形式的调用。当然最重要的是你没有写 break。
public static void xunhuan() {
Scanner input2 = new Scanner(System.in);
System.out.println("=====================================");
System.out.print("是否要继续判断 (y/n):");
char zi;
zi = input2.next().charAt(0);
switch (zi) {
case 'y':
System.out.println("=====================================");
System.out.println("你选择了继续进行判断");
Test.main(null);
// 由于这里没有写 break,所以每次递归进去,在回归的时候都会继续执行下一个 case
break;
case 'n':
System.out.println(" ——————————————————");
System.out.println(" | 你选择了结束 |");
System.out.println(" ——————————————————");
break;
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632