switch语句

时间:2015-09-22 22:19:31

标签: java switch-statement character

我的代码告诉我案例'A +'是一个无效的字符陈述,但我需要能够有案例A +,A,A-等等。我想知道的是:我可以在案件价值中没有+或 - 吗?如果是这样,有没有其他方法来确定用户输入控制台的内容。我一直无法找到答案。感谢帮助!

import java.util.Scanner;

public class GradeAdvice {

public static void main(String[] args) {


    // User will input grade and program will give advice corresponding 
    // to that grade

    // Prompt use for their grade
    System.out.println("What was your grade on the midterm?");

    char midtermGrade;

    // Create an input object
    Scanner input = new Scanner(System.in);
    midtermGrade = input.next().charAt(0);

    // Determine which advice to give based on grade
    switch (midtermGrade)
    {
        case 'A+' : 
        case 'a+' : System.out.println("Continue doing what you have been doing, ask questions"); 
            break;
        default: System.out.println("This grade is invalid.");
            break;

}
    // Close input
    input.close();
}

}

7 个答案:

答案 0 :(得分:2)

Java中的字符文字在单引号中标识一个字符,而不是多个字符。对于多个字符,您必须使用由双引号字符分隔的String

在Java 7+中,您可以使用String s作为案例标签,例如

case "A+":

但是你只使用输入的第一个字符。变化

char midtermGrade;
midtermGrade = input.next().charAt(0);

String midtermGrade;
midtermGrade = input.next();

答案 1 :(得分:0)

char可以容纳一个字符。相反,您可以使用String

String midtermGrade;

// Create an input object
Scanner input = new Scanner(System.in);
midtermGrade = input.next();

// Determine which advice to give based on grade
switch (midtermGrade)
{
    // Note that strings are denoted by "s, not 's.
    case "A+" : 
    case "a+" : System.out.println("Continue doing what you have been doing, ask questions"); 
        break;
    default: System.out.println("This grade is invalid.");
        break;
}

答案 2 :(得分:0)

使用String,并对案例进行规范化

switch( input.next().toUpperCase() )
{
    case "A+" :
        ...
    default :
        ...
}

答案 3 :(得分:-1)

"A+",字符串的双引号,字符的单引号。

答案 4 :(得分:-1)

这是因为您使用的是字符而不是字符串。一个角色正是它所说的一个角色。 A +是两个字符A和+。对字符串文字使用双引号(")。例如:

'A' \\ This is a character
"A" \\ This is a string

答案 5 :(得分:-1)

“A +”不是char,它是字符串,将其定义为字符串。

答案 6 :(得分:-4)

A +是一个字符串,而不是一个字符。您可以在C#(使用"而不是')中完成此操作,但不能使用Java,也不能使用大多数其他语言。最简单的方法可能是将交换机转换为一系列的“如果'语句。