2016-04-10 271 views
0

我在写一个使用for循环的小程序。for循环中的语句

1 Scanner sc = new Scanner(System.in); 
2 int T = sc.nextInt(); 
3 for(int j = 1; j < 2T-1; j+=2){ 
4  doSomething(); 
5 } 

但是,这一个给我一个错误。
错误消息说:

javac Main.java -g 
Main.java:12: error: ';' expected 
      for(int j = 1; j < 2T-1; j+=2){ 
           ^
Main.java:12: error: not a statement 
      for(int j = 1; j < 2T-1; j+=2){ 
           ^
Main.java:12: error: ')' expected 
      for(int j = 1; j < 2T-1; j+=2){ 
           ^
Main.java:12: error: ';' expected 
      for(int j = 1; j < 2T-1; j+=2){ 
             ^
4 errors 

我不太明白的错误消息“声明”。

1)它如何产生错误?
2)陈述和表达有什么区别?

回答

1

Java不是一个代数数学系统。这

for(int j = 1; j < 2T-1; j+=2){ 

应该

for(int j = 1; j < (2*T) - 1; j += 2){ 

2T-1根本就不是一个有效的声明;变量名称不能以数字开头,编译器检测到2将是一个有效的语句并且正在传递该语句。然而,T-1然后在一个意想不到的地方。

0

你必须使用

for(int j = 1; j < (2*T)-1; j+=2){ 

for(int j = 1; j < 2*T-1; j+=2){ 

都将给你相同的结果。