在这个程序中,我想知道类型是前缀或后缀还是两者
例如我存储数组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
答案 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.
希望这澄清。