2013-07-14 20 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); 

}