2015-12-02 2 views
-3

Я не понимаю, почему моя программа не позволит мне преобразовать мою переменную в char. Любая помощь будет принята с благодарностью! Я получаю в общей сложности 7 ошибок, все из которых основаны на моих оценках тестов или вокруг ввода в таблицу тестов.String Cannont Be Converted to Char

public class lab13 
{ 
    public static void main(String[] args) 
    { 
     // declare variables 
     int average; 
     int sum; 
     int i; 
     char grade; 
     int testScore; 

     //Create a Scanner Object 
     Scanner keyboard= new Scanner(System.in); 

     sum = 0; 
     i = 1; 
     while (i <= 4) 
     { 
     System.out.print("Enter a test score:"); 
     testScore=keyboard.nextLine(); 
     if (testScore < 60) 
     { 
      grade =(F); 
     } 
     else 
     { 
      if (testScore < 70) 
      { 
       grade =("D"); 
      } 
      else 
      { 
       if (testScore < 80) 
       { 
        grade =("C"); 
       } 
       else 
       { 
        if (testScore < 90) 
        { 
        grade =("B"); 
        } 
        else 
        { 
        grade =("A"); 
        } 
       } 
      } 
     } 
     System.out.print("Test score:"+testScore); 
     System.out.print("Letter grade:"+grade); 
     sum = sum + testScore; 
     i = i + 1; 
     } 
     average = sum/4; 
     System.out.print("Test score average = " + average); 
    } // close main 
} // close lab13 
+1

Почему бы вам не сделать это? e IDE, например eclipse, чтобы он правильно сообщал об ошибках. – niyasc

+2

Используйте здравый смысл. Что означало бы преобразование строки в символ? –

ответ

0

char константа может быть выражена как ''

grade = 'F'; 

и

grade = 'D'; 

и

grade = 'C'; 

и

grade = 'B'; 

и

grade = 'A'; 
0

char может содержать только один символ, который определяется с использованием одиночных кавычек, как и в 'C'

0

Insted из keyboard.nextLine() использовать keyboard.nextInt() и для присвоения значения символа непосредственно использовать символ с одиночной квотой, такой как «А», а не («А»)

+0

Спасибо за помощь! –

0
import java.util.Scanner; 



public class lab13 
{ 
    public static void main(String[] args) 
    { 
     // declare variables 
     int average; 
     int sum; 
     int i; 
     char grade; 
     int testScore; 

     //Create a Scanner Object 
     Scanner keyboard= new Scanner(System.in); 

     sum = 0; 
     i = 1; 
     while (i <= 4) 
     { 
     System.out.print("Enter a test score:"); 
     testScore=keyboard.nextInt(); 
     if (testScore < 60) 
     { 
      grade ='F'; 
     } 
     else 
     { 
      if (testScore < 70) 
      { 
       grade ='D'; 
      } 
      else 
      { 
       if (testScore < 80) 
       { 
        grade ='C'; 
       } 
       else 
       { 
        if (testScore < 90) 
        { 
         grade ='B'; 
         } 
        else 
        { 
        grade ='A'; 
        } 
       } 
      } 
     } 
     System.out.println("Test score:"+testScore); 
     System.out.println("Letter grade:"+grade); 
     sum = sum + testScore; 
      i = i + 1; 
     } 
     average = sum/4; 
     System.out.print("Test score average = " + average); 
    } // close main 
    } // close lab13 
+0

Используйте этот код. Предлагаемые улучшения: вам не нужно использовать эти многочисленные фигурные скобки для блоков if-else, если они содержат только один оператор. И используйте System.out.println вместо System.out.print для удобочитаемости вывода !!!! –

+0

if (testScore <60) { оценка = 'F'; } может быть записана как: if (testScore <60) оценка = 'F'; –