2013-07-14 22 views
1

我有代碼應該工作,但底部的大括號給我一個錯誤。可能有一個簡單的解決方案,我找不到,可能是因爲我筋疲力盡。這兩個代碼都在不同的類別中。如果我刪除一個支架,然後另一個支架給我一個錯誤。雖然循環大括號{}錯誤代碼

import java.util.Scanner; 

public class question { 

    public static void main(String[] args) { 
     int a = 0; 
     int b = 0; 
     int c = 0; 
     int d = 0; 
     int f = 0; 
     int grade = 0; 
     Scanner keyboard = new Scanner(System.in); 

     System.out.println("Enter grade scores: "); 
     do { 
      System.out.print("Grade: "); 
      grade = keyboard.nextInt(); 

      if (grade >= 0 && grade < 60) { 
       f++; 
      } else if (grade < 70) { 
       d++; 
      } else if (grade < 80) { 
       c++; 
      } else if (grade < 90) { 
       b++; 
      } else if (grade <= 100) { 
       a++; 
      } 

      while (grade >= 0) { 
       System.out.println("Total scores: " + (a + b + c + d + f)); 
       System.out.println("A: " + a); 
       System.out.println("B: " + b); 
       System.out.println("C: " + c); 
       System.out.println("D: " + d); 
       System.out.println("F: " + f); 
      } 
     } // this one gives error 
    } 
} 
+1

查一查做-while循環,你正在做他們錯了。 –

+0

結構應該是'do {...} while(...);'。你錯過了'while(...);'部分。 –

+0

也是無關的,完全不相干的,但;嘗試維護代碼的某種縮進結構。它變得更容易閱讀。對於你,以及任何想要閱讀你的代碼的人。 – Volatile

回答

4

語法

do { 
} while (boolean expression) ; 

你缺少while部分

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

+0

你是什麼意思?是不是這個while(next> = 0);一段時間的聲明? – colors

+1

@colors您的'while'完全獨立於'do',因爲它出現在大括號內 - 您所擁有的是'do-while'聲明中的while語句。你需要在花括號之後有一個'while'來完成'do-while'語句 –

4

如果你讀了documentation這是一個do while循環應該是什麼樣子:

do { 
    statement(s) 
} while (expression); 

什麼,你現在有是:

do { 

} 

,所以你缺少while (expression) ;部分。

+0

哈謝謝,它工作正常 – colors

2

您錯過了代碼中的'while'部分。每次迭代後,do-while循環都必須有一個條件來檢查。您的語法應如下所示:

do 
{ 
//code here 
} 
while (condition-here); 

注意:do-while循環在語句結尾處使用分號。不要錯過

2

我認爲你正在試圖做到這一點:

public static void main(String[] args){ 


    int a = 0; 
    int b = 0; 
    int c = 0; 
    int d = 0; 
    int f = 0; 
    int grade = 0; 
    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Enter grade scores: "); 
    do{ 
     System.out.print("Grade: "); 
     grade = keyboard.nextInt(); 

     if(grade >= 0 && grade < 60){ 
      f++; 
     } 
     else if(grade < 70){ 
      d++; 
     } 
     else if(grade < 80){ 
      c++; 
     } 
     else if(grade < 90){ 
      b++; 
     } 
     else if(grade <= 100){ 
      a++; 
     } 

    } while (grade >= 0) 

     System.out.println("Total scores: " + (a + b + c + d + f)); 
     System.out.println("A: " + a); 
     System.out.println("B: " + b); 
     System.out.println("C: " + c); 
     System.out.println("D: " + d); 
     System.out.println("F: " + f); 

}