我有一个“错误:令牌上的语法错误,错位的构造”。我的错误在哪里?

时间:2014-10-05 23:30:35

标签: java

import java.util.Scanner;

公共课LetterGrade

{

public static void main(String [] args)

{

char grade;

String input;

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter grade awarded");

input = keyboard.nextLine();

grade = input.charAt(0);

switch (grade)

{

  case 'A':

    System.out.println("Grade was between " + 89.5 - 100);

    break;

  case 'B':

    System.out.println("Grade was between " + 79.5 - 89.45); 

    break;

  case 'C':

    System.out.println("Grade was between " + 69.5 - 79.49);

    break;

  case 'D':

    System.out.println("Grade was between " + 59.5 - 69.49);

    break;

  case 'F':

    System.out.println("Grade was below " + 59.5); 

    break;  

    System.out.println("Invalid grade inputted ");

}

}

}

发现4个错误: 文件:C:\ Users \ Raj \ Downloads \ Java \ LetterGrade.java [line:19] 错误:运算符 - 未定义参数类型java.lang.String,int 文件:C:\ Users \ Raj \ Downloads \ Java \ LetterGrade.java [line:22] 错误:操作符 - 未定义参数类型java.lang.String,double 文件:C:\ Users \ Raj \ Downloads \ Java \ LetterGrade.java [line:25] 错误:操作符 - 未定义参数类型java.lang.String,double

我修复了我遇到的重大错误,对不起。我真的没有直接思考,我明白我需要阅读更多内容,我将在今晚做,但我现在有不同的错误。

3 个答案:

答案 0 :(得分:2)

问题:

1。 grade = keyboard.next.Int();应为grade = keyboard.nextInt();

2。 Case A;

  • 一个。 Case应为case

  • A切换int是什么,但没有变量A 保留任何int值。如果您的意思是char A,那么您应该这样做 将其更改为'A'

  • :之后,您需要;而不是case。像case 'A':
  • 这样的东西

3。 switch (grade);删除;。将其更改为switch (grade)

4. 不确定这个Any other character;希望它的意思是评论

答案 1 :(得分:1)

第一期

grade = keyboard.next.Int();

更改为

grade = keyboard.nextInt();

第二期

您的交换机声明显然是错误的

例如

  1. switch (grade); <--- wrong {

  2. Case A; <--- wrong

  3. 您的grade类型为int,但您的案例类型为char

  4. Case错误,您应该case

  5. 将此示例视为蓝图

    public class SwitchDemo {
        public static void main(String[] args) {
    
            int month = 8;
            String monthString;
            switch (month) {
                case 1:  monthString = "January";
                         break;
                case 2:  monthString = "February";
                         break;
                case 3:  monthString = "March";
                         break;
                case 4:  monthString = "April";
                         break;
                case 5:  monthString = "May";
                         break;
                case 6:  monthString = "June";
                         break;
                case 7:  monthString = "July";
                         break;
                case 8:  monthString = "August";
                         break;
                case 9:  monthString = "September";
                         break;
                case 10: monthString = "October";
                         break;
                case 11: monthString = "November";
                         break;
                case 12: monthString = "December";
                         break;
                default: monthString = "Invalid month";
                         break;
            }
            System.out.println(monthString);
        }
    }
    

    Source of Code and Read more about Switch Statement

答案 2 :(得分:0)

第13行末尾不应该有一个分号。(“切换”行)。

修复后,您将看到“case”子句的语法错误。

从Java的角度看,“任何其他角色”都是无稽之谈。 (我很惊讶Java编译器没有给你一块砖头!)


  

我不确定我在做什么是错的。

您正在尝试编写Java而不必费心去学习它。这在许多层面都是错误的。

我建议您阅读Oracle Java教程。对于此示例,请阅读Switch Statement页面。