我在下面的代码中遇到错误...
elseif(option.equals("S")||option.equals("s")) // Error Expected Symbol ;
{
ScientificCalculator sc=new ScientificCalculator();
sc.Calc();
}
如果我在 elseif 之后加上分号,那么它不会执行 else if 语句我做什么
我在下面的代码中遇到错误...
elseif(option.equals("S")||option.equals("s")) // Error Expected Symbol ;
{
ScientificCalculator sc=new ScientificCalculator();
sc.Calc();
}
如果我在 elseif 之后加上分号,那么它不会执行 else if 语句我做什么
您需要在 elseif 和字符串比较之间放置空格,您可以使用 equalsIgnoreCase 忽略大小写
else if(option.equalsIgnoreCase("S"))
{
ScientificCalculator sc=new ScientificCalculator();
sc.Calc();
}
尝试 else if 并且不要写 or(||) 尝试使用字符串类的 equalsIgnorecase 方法。所以重写你的代码如下。我不是说你用 or 写了错误的代码,但是使用 equalsIgnorecase 会阻止额外的检查,它也会提高代码的可读性
else if(option.equalsIgnoreCase("S"))
{
ScientificCalculator sc=new ScientificCalculator();
sc.Calc();
}
Java 不知道elseif
,你需要else if
.
您的代码也可以缩短为:
else if(option.equalsIgnoreCase("S")) {
// do stuff
}
Java 使用else if
.
elseif 语法错误。
您的两个关键字else
和之间缺少一个空格if
。
else if(option.equals("S")||option.equals("s")) { /// rest to follow
你需要使用else if
,而不是elseif
。
else if(option.equals("S")||option.equals("s"))
{
ScientificCalculator sc=new ScientificCalculator();
sc.Calc();
}
如果我在 elseif 之后加上分号,那么它不会执行 else if 语句我做什么
是的,这是预期的行为!并且一旦不得不调试一个永远不会忘记的常见错误。
if(someCondition); //BAD BAD BAD
//an empty code block is run when someCondition is true -- not very useful
{...instructions...} //these are run regardless of someCondition
此外,这些是常见的错误:
for(int i=0;i<1000;i++); //BAD BAD BAD!
{ ... instructions ... } //this is only run once, regardless of i.
//Actually i is out of context here, so compiler will point it out...
int i=0;
while(i<1000); //BAD BAD BAD!
{...instructions...} //never run, as the while loop (thanks jlordo) runs infinitely
//i is valid, and has the value of 1 - so compiler will be quiet...
没有这样的事情:
if {} elseif{}
那里存在:
if
{}
else
{
if //Independent if
{}
}
而 Java 允许您将其编写为:
if{}
else if{}