字符文字中的换行符非法



**关于代码:我只是使用switch语句编写一个简单的代码。除了两位数的情况外,所有的开关情况都很好。我收到一个错误,说:

year.java:37: error: unclosed character literalcase '10'
year.java:40: error: unclosed character literalcase '11':year.java:43: error: unclosed character literalcase '12'

代码:

import java.util.Scanner;
public class year {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char year;
System.out.println("Enter the number of the month ");
year = input.next().charAt(0);
switch(year){
case '1': 
System.out.println("January");
break;
case '2':
System.out.println("Febraury");
break;
case '3':
System.out.println("March");
break;
case '4':
System.out.println("April");
break;
case '5':
System.out.println("May");
break;
case '6':
System.out.println("June ");
break;
case '7':
System.out.println("July");
break;
case '8':
System.out.println("August ");
break;
case '9':
System.out.println("September ");
break;
case '10':
System.out.println("October");
break;
case '11':
System.out.println("November");
break;
case '12'
System.out.println("December");
break;
default:
System.out.println("Invalid");
}
input.close();
}
}

我试着在这里和那里做一些改变,但无法理解,因此无法做到

您的变量year是一个char。字符只能是一个字符。

因此,当你尝试执行CCD_ 7或CCD_;字符";由多个字符组成。

这里的快速解决方案是使用String而不是char,使用不带.charAt(0)input.next()。然后,您需要将case语句更改为使用双引号而不是单引号。

或者,您可以执行Integer.parseInt(input.next()),然后打开int,正如@Tom所建议的那样。

首先,case '12'中有语法错误,应该是case '12':(代码缩进也不好。缩进不好会使调试变得困难(

我建议您将此代码转换为基于String的代码。请检查下面的完整示例。Char只能得到一个字符,char year;会导致错误,因为在10、11、12等输入值中,它不会像预期的那样工作

import java.util.Scanner;
public class year {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String year;
System.out.println("Enter the number of the month ");
year = input.nextLine();
switch(year){
case "1": 
System.out.println("January");
break;
case "2":
System.out.println("Febraury");
break;
case "3":
System.out.println("March");
break;
case "4":
System.out.println("April");
break;
case "5":
System.out.println("May");
break;
case "6":
System.out.println("June ");
break;
case "7":
System.out.println("July");
break;
case "8":
System.out.println("August ");
break;
case "9":
System.out.println("September ");
break;
case "10":
System.out.println("October");
break;
case "11":
System.out.println("November");
break;
case "12":
System.out.println("December");
break;
default:
System.out.println("Invalid");
}
input.close();
}
}

最新更新