gpt4 book ai didi

java - 为什么当第一个 if 语句为真时代码执行第二行?

转载 作者:行者123 更新时间:2023-11-29 05:18:00 25 4
gpt4 key购买 nike

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 正在比较的相反的东西。

关于java - 为什么当第一个 if 语句为真时代码执行第二行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858516/

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