虽然循环将不起作用

问题描述:

我正在制作一个程序,您输入的是学生的成绩,并计算谁通过并失败,然后Z应该表示程序应该结束。但每当我在“Z”型,它只是打印出:虽然循环将不起作用

<Z is NOT an acceptable grade.> 

因此就阻止while循环从实现我想要继续前进。有任何想法吗? 完整代码如下。

import java.lang.reflect.Array; 

import java.util.Scanner; 
import java.util.Arrays; 
import java.util.List; 

public class GCDProgram { 
public static void main(String args[]){ 
Scanner sc = new Scanner(System.in); 
int numberOfGrades = 1; 
System.out.println("Enter grade #" + numberOfGrades + ":"); 
String inputLetter = sc.nextLine(); 

int passed = 0; 
int failed = 0; 

String[] letterGrade = {"A", "B", "C", "D", "F"}; 
boolean result = Arrays.stream(letterGrade).anyMatch(inputLetter::equals); 



while (inputLetter != "Z"){ 


if (result) { 

    numberOfGrades++; 
    System.out.println("Enter grade #" + numberOfGrades + ":"); 
    inputLetter = sc.nextLine(); 
    result = Arrays.stream(letterGrade).anyMatch(inputLetter::equals); 
    if ((inputLetter == "D") || (inputLetter == "F")){ 
     failed++; 
    }else{ 
     passed++; 
    } 
}else{ 
    System.out.println("<" + inputLetter + " is NOT an acceptable grade.>"); 
    System.out.println("Enter grade #" + numberOfGrades + ":"); 
    inputLetter = sc.nextLine(); 
    result = Arrays.stream(letterGrade).anyMatch(inputLetter::equals); 
} 
} 
System.out.format("%-20s %3s", numberOfGrades + " students total", ""); 
System.out.format("%-20s %3s", passed + " students passed:", ((passed/numberOfGrades) * 100) + "%"); 
System.out.format("%-20s %3s", failed + " students failed:", ((failed/numberOfGrades) * 100) + "%"); 
} 


} 
+0

'inputLetter = “Z”' - >'inputLetter.equals( “Z”)'或' “Z” .equals!! (inputLetter)' – csmckelvey

请这种情况下尝试:

while (!"Z".equals(inputLetter)){