2012-11-19 17 views
6

इस कार्यक्रम का बिंदु उपयोगकर्ता के लिए तीन परीक्षा स्कोर दर्ज करना है और उनका औसत और पत्र ग्रेड उन्हें वापस कर दिया गया है।जावा स्विच स्टेटमेंट <identifier> अंक

जिस तरह से यह वर्तमान में लिखा है मुझे लाइन के लिए एक त्रुटि देता है 'सार्वजनिक स्थैतिक स्ट्रिंग getLetterGrade ..' और मैं नहीं जानता कि ऐसा क्यों है ..

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

आप "औसत" –

उत्तर

3

यह होना चाहिए

private static String getLetterGrade(int average){ 

या किसी डेटाप्रकार के साथ, और यदि आप किसी अन्य गैर की बात कर रहे स्विच बयान में चर मौजूद intAverage

0

आपका चर औसत के प्रकार लगाना भूल मैं एन विधि getLetterGrade। यह switch(intAverage/10) से switch(average/10) को भी सही करें।

0
private static String getLetterGrade(int average) 

आप चर average के प्रकार के प्रवेश करने के लिए भूल गया, यह प्रकार int मुझे लगता है की जरूरत है।

स्विच (intAverage/10) को स्विच करने के लिए बदला जाना चाहिए (औसत/10)।

मैं सटीकता के साथ int messing की अपनी पसंद के साथ कुछ समस्याएं भी देख रहा हूं जब तक कि ऐसा कुछ न हो जिसे आप अनदेखा करना चाहते हैं। यदि मैं इन सभी को इनट्स को कास्टिंग करने के बजाए स्विच केस के लिए स्टेटमेंट्स और रेंज का उपयोग करता हूं तो मैं इसका उपयोग करूंगा। हो सकता है कि इससे कोई फर्क पड़ता है, लेकिन यह नहीं है कि सटीकता की सभी कास्टिंग और हानि सिर्फ मुझे लगता है कि कोड अधूरा है।

+0

पैरामीटर के लिए डेटा प्रकार खो रहे हैं औसत एक int है, स्ट्रिंग नहीं है। – Maroun

0

पैरामीटर average कोई प्रकार नहीं है। यह होना चाहिए:

private static String getLetterGrade(int average) { 

उस चर के प्रकार से मेल खाने के लिए जो आप इसे पारित कर रहे हैं।

+0

वह इस चर का कभी भी उपयोग नहीं करता है। मुझे लगता है कि उसे 'स्विच' कथन के अंदर 'औसत' का उपयोग करना होगा। – Maroun

संबंधित मुद्दे