2012-11-19 14 views
6

Il punto di questo programma è per un utente di immettere tre punteggi di esame e il loro voto medio e lettera viene restituito a loro.Istruzione switch Java <identifier> numero

Il modo in cui è attualmente scritto mi dà un errore per il 'static String getLetterGrade pubblica ..' di linea e non so perché questo è ..

public class GradeProblem 
{ 
public static void main(String[] args) 
{ 
char letterGrade; 
String exam1, exam2, exam3; 
double exam1Score, exam2Score, exam3Score, average; 

exam1 = JOptionPane.showInputDialog(null, "Enter your score for Exam 1: "); 
exam1Score = Double.parseDouble(exam1.substring(0,2)); 
int intExam1Score = (int)exam1Score; 

exam2 = JOptionPane.showInputDialog(null, "Enter your score for Exam 2: "); 
exam2Score = Double.parseDouble(exam2.substring(0,2)); 
int intExam2Score = (int)exam2Score; 

exam3 = JOptionPane.showInputDialog(null, "Enter your score for Exam 3: "); 
exam3Score = Double.parseDouble(exam3.substring(0,2)); 
int intExam3Score = (int)exam3Score; 

average = (intExam1Score + intExam2Score + intExam3Score)/3; 

int intAvergage = (int)average; 
letterGrade = getLetterGrade(intAverage); 

System.out.println("Your average is "+average); 
System.out.println("Your letter grade is "+letterGrade); 

} 

private static String getLetterGrade(average) 
{ 
String letterGrade; 
switch(intAverage/10) 
{ 
    case 10: letterGrade = "A"; 
    case 9: letterGrade = "A"; 
       break; 
    case 8: letterGrade = "B"; 
       break; 
    case 7: letterGrade = "C"; 
       break; 
    case 6: letterGrade = "D"; 
    default: 
       letterGrade = "E"; 
} 
return letterGrade; 

    } 
+0

Manca il tipo di dati per il parametro "medio" –

risposta

3

Dovrebbe essere

private static String getLetterGrade(int average){ 

o con qualsiasi tipo di dati, e si fa riferimento a un altro non esistono variabili in un'istruzione switch intAverage

0

tuo dimenticato di mettere il tipo della media variabile i n il metodo getLetterGrade. Correggere anche questo switch(intAverage/10) a switch(average/10).

0
private static String getLetterGrade(int average) 

Non è stato inserito il tipo di variabile average, ha bisogno di essere di tipo int suppongo.

switch (intAverage/10) deve essere modificato per passare (media/10).

Sto anche vedendo alcuni problemi con la tua scelta di int pasticciare con precisione a meno che non sia qualcosa che vuoi ignorare. Userò se le dichiarazioni e un intervallo per i casi di switch, piuttosto che solo il cast di tutti gli intementi. Forse fa la differenza forse non è tutto ma il cast e la perdita di precisione mi fanno sentire come se il codice fosse incompleto.

+0

medio è un valore int, non una stringa. – Maroun

0

Il parametro average non ha alcun tipo. Dovrebbe essere:

private static String getLetterGrade(int average) { 

per abbinare il tipo di variabile che si sta passando ad esso.

+0

Non usa mai questa variabile. Suppongo che debba usare 'average' all'interno dell'istruzione' switch'. – Maroun

Problemi correlati