if(!Character.isDigit(tokens[0].charAt(0)) && !line.equals("clear") && !line.equals("var"))
{
int value = 0;
for(int i=0; i<tokens.length; i++)
{
if(tokens[i].charAt(0) == '+');
{
if(Character.isDigit(tokens[i].charAt(0)))
{
int add = Integer.parseInt(tokens[i]);
value = value + add;
}
}
else
{
System.out.println("No symbol");
break;
}
}
map.put(tokens[0], value);
System.out.println(map);
}
“无符号”的else语句返回错误,表明它没有if语句。
答案 0 :(得分:5)
您的if
if(tokens[i].charAt(0) == '+');
如果if
条件为真,则此分号实际上将是执行的块。然后,将无条件执行以下块,因此else
与之前的if
无关。
只需删除该分号即可解决问题。
答案 1 :(得分:2)
请参阅if Statement
末尾的分号 if(tokens[i].charAt(0) == '+');
应该是
if(tokens[i].charAt(0) == '+')
答案 2 :(得分:2)
你错误地关闭了你的if语句。
if(tokens[i].charAt(0) == '+') // notice the missing ";"
{
您的代码
if(tokens[i].charAt(0) == '+'); // if statement ends
{ // code block
if(Character.isDigit(tokens[i].charAt(0)))
{
int add = Integer.parseInt(tokens[i]);
value = value + add;
}
}
else // ERROR because the compiler finds an else block but no preceding if block
{
System.out.println("No symbol");
break;
}