Как выйти из цикла while с помощью CTRL D
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package lettergrades; import java.util.Scanner; /** * * @author user1 */ public class LetterGrades { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int total = 0; int gradeCounter = 0; int aCount = 0; int bCount = 0; int cCount = 0; int dCount = 0; int fCount = 0; Scanner input = new Scanner(System.in); System.out.printf("%s%n%s%n%s%n%s%n ", "Enter the integer grades in the range 0-100", "Type the end-of-file indicator to terminate input", "On UNIX/LINUX/MACOS type <CMD> d then press Enter", "On WINDOWS type <CTRL> z then press Enter"); do { int grade = input.nextInt(); total += grade; ++ gradeCounter; switch(grade/10) { case 9: case 10: ++aCount; break; case 8: ++bCount; break; case 7: ++cCount; break; case 6: ++dCount; break; default: ++fCount; break; } } while(input.hasNext()); System.out.printf("%nGrade Report:%n"); if (gradeCounter != 0) { double average = (double) total / gradeCounter; System.out.printf("Total of the %d grades entered is %d%n", gradeCounter, total); System.out.printf("Class average is %.2f%n", average); System.out.printf("%n%s%n%s%d%n%s%d%n%s%d%n%s%d%n%s%d%n", "Number of students who recieved each grade:", "A: ",aCount, "B: ",bCount, "C: ",cCount, "D: ",dCount, "F: ",fCount); } else System.out.println("No grades were entered..."); } }
Что я уже пробовал:
Привет, я написал этот пример из JAVA, как программировать. Я пытался понять, почему CTRL D не завершает цикл и не переходит к System.out.printf("%nGrade Report:%n");. Я пробовал разные варианты петель, и это просто не работает. Если я включу вывод в цикл, он будет работать, но в идеале он будет работать только один раз, когда будет помещен вне цикла. Я знаю, что есть и другие способы сделать это, но я хотел бы, чтобы это работало так, как задумал автор. Заранее спасибо за любую помощь.