2013-07-14 2 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

Посмотрите делать-то время петли, как вы делаете их неправильно. –

+0

Структура должна быть 'do {...} while (...);'. Вам не хватает части while (...); '. –

+0

Также несвязанный и совершенно не относящийся к делу, но; попробуйте сохранить какую-то структуру отступа вашего кода. Это становится намного легче читать. Для вас и для тех, кто когда-либо будет читать ваш код. – Volatile

ответ

4

Синтаксис является

do { 
} while (boolean expression) ; 

Вы упускаете while часть

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

+0

Что значит? это не в то время (next> = 0); какое-то заявление? – colors

+1

@colors Ваше 'while' полностью не зависит от' do', потому что оно появляется внутри фигурных скобок - то, что у вас есть, является оператором 'while' внутри сломанного оператора do-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); 

Примечания: сделай то время как петля взять с запятой в конце заявления. Не пропустите, что

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); 

}