-7

我在下面的代码中遇到错误...

elseif(option.equals("S")||option.equals("s"))  // Error Expected Symbol ;
{
   ScientificCalculator sc=new ScientificCalculator();
   sc.Calc();
}

如果我在 elseif 之后加上分号,那么它不会执行 else if 语句我做什么

4

8 回答 8

4

您需要在 elseif 和字符串比较之间放置空格,您可以使用 equalsIgnoreCase 忽略大小写

   else if(option.equalsIgnoreCase("S")) 
   {
        ScientificCalculator sc=new ScientificCalculator();
        sc.Calc();
   }
于 2013-09-23T12:58:33.047 回答
2

尝试 else if 并且不要写 or(||) 尝试使用字符串类的 equalsIgnorecase 方法。所以重写你的代码如下。我不是说你用 or 写了错误的代码,但是使用 equalsIgnorecase 会阻止额外的检查,它也会提高代码的可读性

else if(option.equalsIgnoreCase("S")) 
{
   ScientificCalculator sc=new ScientificCalculator();
   sc.Calc();
}
于 2013-09-23T12:57:19.780 回答
2

Java 不知道elseif,你需要else if.

您的代码也可以缩短为:

else if(option.equalsIgnoreCase("S")) {
  // do stuff
}
于 2013-09-23T12:55:33.513 回答
1

Java 使用else if.

elseif 语法错误。

于 2013-09-23T12:59:42.213 回答
1

您的两个关键字else和之间缺少一个空格if

else if(option.equals("S")||option.equals("s")) { /// rest to follow
于 2013-09-23T12:55:27.520 回答
1

你需要使用else if,而不是elseif

else if(option.equals("S")||option.equals("s"))  
{
   ScientificCalculator sc=new ScientificCalculator();
   sc.Calc();
}
于 2013-09-23T12:56:06.200 回答
0

如果我在 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...
于 2013-09-23T12:57:40.340 回答
0

没有这样的事情:

if {} elseif{}

那里存在:

if
{}
else 
{
if //Independent if
 {}
}

而 Java 允许您将其编写为:

if{}
else if{}
于 2013-09-23T12:58:32.287 回答