2013-08-17 55 views
0

我正在編寫一個關於查找質數的程序,並且當我在'else if'中添加時遇到了語法錯誤'語法錯誤,插入}以完成塊'。奇怪的語法錯誤,插入}完成塊

我標記了星號,我得到的錯誤。

import java.math.*; 

public class FindThePrime { 

    public static void main(String[] args) { 

     int x = 2; 
     int nextPrime = 1; 
     for (int i = 1; i <= 10; ++i){ 



     int count = 0; 

     while (nextPrime > x);{ 

      if (nextPrime % x == 0);{ 


       ++nextPrime; 
       x = 2; 
       ++count; 

      } 
      if (nextPrime < x); { 
       ++x; 
      } 
     ***}*** 



    } 
     else if{ 

     } 
    } 

} 

我讀了其他報告的同樣的問題,沒有任何幫助。我計算了{&}的數量,他們達到了偶數。

有什麼建議嗎?

p.s .:這個項目遠未完成,所以請原諒它的粗糙。另外,不要告訴我如何得到我想要的結果,我不想破壞挑戰!

+0

你不想'之間的分號)'和''{。這個:'if(cond); {blah}'是一個'if'語句,它不控制任何後跟無條件塊的內容。這個:'if(cond){blah}'是一個控制'{blah}'的'if'語句。 –

+0

如果在CLI中發現難以編碼,請使用IDE(Eclipse Intellij IDEA或netbeans)。您有縮進或重新格式化選項,這將直接爲您縮進代碼。如果沒有正確的縮進,你明天會對你今天寫的代碼感到困惑。 –

回答

0

如果您需要直接在if之後,您的其他人。現在你說的,而{做的東西} ELSEIF {做其他的東西}

所以儘量

 if (nextPrime < x) { 
      ++x; 
     } 
     else if { 

     } 

此外,如果使用的是Eclipse,你可以使用CTRL-SHIFT-F格式的代碼(如果它沒有錯誤)。這真的可以幫助理清嵌套問題。

最重要的是你有一個;過了一段時間後,如果。一個 ;表示該命令將不包含{},因此您想要刪除;

例如while(1 == 1);將永遠循環。

0

import java.math。*;

公共類FindThePrime {

public static void main(String[] args) { 

    int x = 2; 
    int nextPrime = 1; 
    for (int i = 1; i <= 10; ++i) 
    { 
     int count = 0; 
     while (nextPrime > x) 
     { 
     if (nextPrime % x == 0) 
     { 
      ++nextPrime; 
      x = 2; 
      ++count; 
      } 
      if (nextPrime < x) { 
      ++x; 
      } 
      else { 
       System.out.println("foo"); 
      } 

    } //while loop 

    }//for loop 
}//main 

}