Java 在System.out.println中声明决策结构
所以我在做一个赋值,我必须在一个构造函数中有一个print方法来显示距离。 根据演示类中的输入,我还必须有三个单独的get方法。 我的问题是,我正在尝试编写print方法,以包含一个使用get的决策结构。 公共无效prt(){ DecimalFormat formatter=新的DecimalFormat(“0.00”) 在尝试编译之后,我得到了以下错误Java 在System.out.println中声明决策结构,java,if-statement,println,Java,If Statement,Println,所以我在做一个赋值,我必须在一个构造函数中有一个print方法来显示距离。 根据演示类中的输入,我还必须有三个单独的get方法。 我的问题是,我正在尝试编写print方法,以包含一个使用get的决策结构。 公共无效prt(){ DecimalFormat formatter=新的DecimalFormat(“0.00”) 在尝试编译之后,我得到了以下错误 Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corpo
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\GlaDOS\Desktop\JavaStuff>j Speed
C:\Users\GlaDOS\Desktop\JavaStuff>del *.class
C:\Users\GlaDOS\Desktop\JavaStuff>javac Speed.java
Speed.java:43: error: illegal start of expression
" feet through air is
" + if (getSpeedInAir() > 0)
^
Speed.java:43: error: ';' expected
" feet through air is
" + if (getSpeedInAir() > 0)
^
Speed.java:43: error: not a statement
" feet through air is
" + if (getSpeedInAir() > 0)
^
Speed.java:43: error: ';' expected
" feet through air is
" + if (getSpeedInAir() > 0)
^
Speed.java:47: error: 'else' without 'if'
else if (getSpeedInWater() > 0)
^
Speed.java:56: error: not a statement
"error";)
^
Speed.java:56: error: illegal start of expression
"error";)
^
7 errors
C:\Users\GlaDOS\Desktop\JavaStuff>java Speed
Error: Could not find or load main class Speed
您的程序中可能有许多错误 1) 您没有
if
语句。这就是为什么在没有if的情况下出现else错误的原因
2) 你最后说的是错的:
else
"error";)
您可以这样做:
if(getSpeedInAir() > 0)
{
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " +formatter.format(getSpeedInAir());
}
else if (getSpeedInWater() > 0)
{
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " + formatter.format(getSpeedInWater());
}
else if (getSpeedInSteel() > 0)
{
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " + formatter.format(getSpeedInSteel());
}
else
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is "+ "error");
或者更有效地像这样:-
String s;
if (getSpeedInAir() > 0)
{
s= formatter.format(getSpeedInAir()).toString();
}
else if (getSpeedInWater() > 0)
{
s= formatter.format(getSpeedInWater()).toString();
}
else if (getSpeedInSteel() > 0)
{
s= formatter.format(getSpeedInSteel()).toString();
}
else
s= "error";
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " + s);
这一行的错误
"error";)
检查这条线
你可以这样写
System.out.println("error");
您需要使用三元运算符?:
而不是if/else
... " feet through air is " + (getSpeedInAir() > 0 ? : formatter.format(getSpeedInAir()) ...
不能在System.out.println
中使用这样的if语句
您可以使用做一些事情,但是为了代码可读性,最好只声明一个变量并像这样连接:
String speed;
if (getSpeedInAir() > 0)
{
speed = formatter.format(getSpeedInAir()).toString();
}
else if (getSpeedInWater() > 0)
{
speed = formatter.format(getSpeedInWater()).toString();
}
else if (getSpeedInSteel() > 0)
{
speed = formatter.format(getSpeedInSteel()).toString();
}
else
speed = "error";
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " + speed);
不能这样做。请使用多个打印语句或一个变量。
String speed;
if (getSpeedInAir() > 0)
{
speed = formatter.format(getSpeedInAir()).toString();
}
else if (getSpeedInWater() > 0)
{
speed = formatter.format(getSpeedInWater()).toString();
}
else if (getSpeedInSteel() > 0)
{
speed = formatter.format(getSpeedInSteel()).toString();
}
else
speed = "error";
System.out.println("The time it takes the sound to travel " + distance +
" feet through air is " + speed);