作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!