import java.util.Scanner;
public class FantahunKeburAlmostIsoscelesRightTriangle{
public static void main (String []args){
Scanner s = new Scanner(System.in);
System.out.println("Enter the longest side: ");
double longest = s.nextDouble();
System.out.println("Enter 2nd side: ");
double second = s.nextDouble();
System.out.println("Enter 3rd side: ");
double third = s.nextDouble();
double longsq = longest*longest;
double secondsq = second*second;
double thirdsq = third*third;
double secthirdsq = secondsq*thirdsq;
if (secthirdsq==longsq)
{
System.out.println("This triangle is an almost-Isosceles right triangle. ");
}
else if (secthirdsq!=longsq)
{
System.out.println("This triangle is not a right triangle. ");
}}
这是我收到的错误>> .java:31: error: 'else' without 'if' 否则如果(secthirdsq!= longsq); ^1 个错误
我需要它打印 if 之后的第一个语句,而不是 else if 之后的语句
编辑:我更改了它,现在即使第一个 if 语句为真,我也无法打印第一个打印行
您的 if 语句末尾有一个分号。该分号结束了 if 语句,下一个代码块被视为一个 block ,无论如何都会执行。
您需要删除 if 语句末尾的所有分号:
if (secthirdsq==longsq)
{
...
}
else if (secthirdsq!=longsq)
{
...
您的代码看起来也存在浮点计算不准确的问题,请尝试比较如下:
if (Math.abs(secthirdsq-longsq) < 0.001))
或者只使用整数(比如 int)。此外,您可能只需要一个 else 而不是 else if,因为您正在比较与前面的 if 正在比较的相反的东西。
Tôi là một lập trình viên xuất sắc, rất giỏi!