java:24:错误:'else'没有'if'

时间:2013-12-03 21:32:42

标签: java

在这个程序中,我想知道类型是前缀或后缀还是两者

例如我存储数组5个单词..然后我将从用户单词部分

获取

如果它是前缀或后缀或两者,我会小鸡

我的代码

import java.util.*; 
public class part  { 
 static Scanner input = new Scanner(System.in);
//main method 
    public static void main(String[] args) {
        System.out.println("the word Part");
        String wordPart= input.next();
        checkWord( wordPart);

    }
    public static void checkWord(String wordPart) {
        String [] m = {"Unhappy","Designed","liked","important","irregular" };
        for (int i =0 ; i<5;i++){
          if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart));{
          System.out.println("both");}
          else if (m[i].startsWith(wordPart)){
          System.out.println("prefix");}
          else
          System.out.println("suffix ");}
         }


     }
 }

错误

part.java:24: error: 'else' without 'if'
     else if (m[i].startsWith(wordPart)){
     ^
part.java:32: error: class, interface, or enum expected
    }
    ^
2 errors

5 个答案:

答案 0 :(得分:4)

if条件结束时删除分号。变化

if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart));{

if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart)) {

分号充当if条件的主体,留下else悬空。

答案 1 :(得分:3)

      if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart));{
                                                              ^----

指示的;完全终止if(),意味着if()没有else,就像错误所说的那样。

答案 2 :(得分:2)

更好地格式化代码,您将看到:

for(int i = 0; i < 5; i++)
{
    if(m[i].startsWith(wordPart) && m[i].endsWith(wordPart)); <<<--- Error!
    {
        System.out.println("both");
    }
    else if(m[i].startsWith(wordPart))
    {
        System.out.println("prefix");
    }
    else
        System.out.println("suffix ");
}

答案 3 :(得分:1)

你有一个分号,你说:

if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart));{

应该是

if (m[i].startsWith(wordPart)&& m[i].endsWith(wordPart)){

答案 4 :(得分:0)

@ user2957980 正如大家所说,分号正在引发这个问题。注意 ;是java中的分隔符,因此,分隔每个指令。当你说'return true'时,指令就会结束,所以后跟一个分号。

如果是if语句,如果满足条件,则应该有一个动作。说

          if (a) then do action b 

您的代码大致转换为

          if (a) then do nothing. 

希望这澄清。