2014-12-06 2 views
-5
public class StudentGrades { 

    String studentID; 
    Integer numericGrade; 

    Scanner input = new Scanner(System.in); 

public void loadStudentGrades(){ 
    do{ 
     System.out.println("Please enter a Student ID, or enter 'end' to exit: "); 
     studentID = input.next(); 
     System.out.println("Please enter numeric grade for the ID above: "); 
     numericGrade = input.nextInt(); 
     map.put(studentID, numericGrade); 
     } 
    while (studentID !String.equals("end")); //this is throwing an error. How is it possible to get this to work? 
    } 
} 

Я работаю над этим классом, и мне трудно получить часть моего цикла do-while, чтобы работать так, как я ожидал. Я хочу сказать, что studentID не равен «концу», чтобы пройти через цикл.Явное булевское выражение для строки в цикле do-while

+4

Что вы думаете, 'studentID! String.equals (« end »)' должен делать и почему? –

+0

http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –

+0

Я думаю, что он должен сравнивать переменную studentID с «end», и если studentID равен «end», тогда конец петля. Я новичок в Java, и почему я думаю, что он должен это делать? Ну, я еще не рассказал, как сравнить String в булевом формате, и из того, что я видел в Интернете, я думал, что у меня должно получиться, поскольку я знаю .equals() используется для сравнения строк, а не! = для ints. Приведенные ниже примеры также не работают, цикл продолжается, даже когда я вхожу «end» для studentID. – javan

ответ

2

Ваше while условие должно быть изменено следующим образом:

while (!studentID.equals("end")) 

, как вы в настоящее время вызова метода equals неверно, так как метод не имеет ни малейшего представления о том, что вам пытаются сравнить studentID с «end»; все, что вы даете, это «конец».

Смежные вопросы