Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在System.out.println中声明决策结构_Java_If Statement_Println - Fatal编程技术网

Java 在System.out.println中声明决策结构

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

所以我在做一个赋值,我必须在一个构造函数中有一个print方法来显示距离。 根据演示类中的输入,我还必须有三个单独的get方法。 我的问题是,我正在尝试编写print方法,以包含一个使用get的决策结构。 公共无效prt(){ DecimalFormat formatter=新的DecimalFormat(“0.00”)

在尝试编译之后,我得到了以下错误

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);