我对一些Java代码有一个澄清:
这些代码之间的区别是什么,一个可以编译而另一个不能编译.
我对"如何修复错误"不感兴趣,因为我已经解决了它,但更多的是关于这个问题的解释:
public void  x(){
    HashMap<String , Integer> count= new HashMap<String, Integer>();
    Scanner scan= new Scanner("hdsh");
    String tmp;
    while((tmp=scan.next())!=null){
        if(count.containsKey(tmp)){
            count.put(tmp, 1);
        }
        else{
            count.put(tmp, count.get(tmp)+1);
        }
         tmp=scan.next();
    }
}
public void  x(){
    HashMap<String , Integer> count= new HashMap<String, Integer>();
    Scanner scan= new Scanner("hdsh");
    while((String tmp=scan.next())!=null){
        if(count.containsKey(tmp)){
            count.put(tmp, 1);
        }
        else{
            count.put(tmp, count.get(tmp)+1);
        }
         tmp=scan.next();
    }
}
此行有多个标记:
Jef*_*rey 10
WhileStatement:
    while ( Expression ) Statement
Expression:
    AssignmentExpression
AssignmentExpression:
    ConditionalExpression
    Assignment
Assignment:
    LeftHandSide AssignmentOperator AssignmentExpression
LeftHandSide:
    ExpressionName
    FieldAccess
    ArrayAccess
LeftHandSide 不能是声明,所以不允许.