2016-04-10 313 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){ 

都將給你相同的結果。