使用开关错误编写程序
writing a program using switch error
请检查为什么我的 "stringYear" 似乎还没有初始化?每次我在 jcreator 中构建文件时,都会出现 1 个错误,它说 - 变量 yearString 可能尚未初始化。
指令是获取输入(年份代码 1 - 4)并将其输出为第一年和新生为 1,第二年和二年级为 2,第三年和大三为 3,第四年和大四为 4。
下面的代码。
import java.util.Scanner;
import java.io.*;
public class yearSWITCH {
public static void main(String[] a) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter year code: ");
System.out.println("");
int year = 4;
String yearString;
switch (year) {
case 1: yearString = "First Year";
yearString = "Freshmen";
break;
case 2: yearString = "Second Year";
yearString = "Sophomore";
break;
case 3: yearString = "Third Year";
yearString = "Junior";
break;
case 4: yearString = "Fourth Year";
yearString = "Senior";
break;
}
System.out.println(yearString);
}
}
您必须使用任何值初始化您的 String
,对于您的情况,如果您按如下方式初始化您的 String
就可以正常工作:
String yearString = ""; //String is empty
但请记住,您在 any case (1,2,3,4)
中的 第二个语句 将 覆盖 变量的任何先前值 yearString
因此,print
语句中 particular case
的唯一输出将是 Senior。此问题的解决方案是初始化 2 Strings
并进行如下更改:
String yearString1 = "";
String yearString2 = "";
switch (year) {
case 1: yearString1 = "First Year";
yearString2 = "Freshmen";
break;
case 2: yearString1 = "Second Year";
yearString2 = "Sophomore";
break;
case 3: yearString1 = "Third Year";
yearString2 = "Junior";
break;
case 4: yearString1 = "Fourth Year";
yearString2 = "Senior";
break;
default:
System.out.println("Invalid Input");
break;
}
System.out.println(yearString1 + "\n " +yearString2);
你可以初始化它。
String yearString = "";
请找到下面的代码..我想这会消除你的疑虑。编写代码时,请使用 IDE 。 IDE 会帮你找出错误。
代码是:
package com.raju;
import java.util.Scanner;
public class YearCheck {
public static void main(String[] a) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter year code: ");
int year = keyboard.nextInt();
String yearString="";
switch (year) {
case 1: yearString = "First Year";
yearString = "Freshmen";
break;
case 2: yearString = "Second Year";
yearString = "Sophomore";
break;
case 3: yearString = "Third Year";
yearString = "Junior";
break;
case 4: yearString = "Fourth Year";
yearString = "Senior";
break;
default:
System.out.println("you have entered the value greater than 4");
break;
}
System.out.println(yearString);
}
}
请检查为什么我的 "stringYear" 似乎还没有初始化?每次我在 jcreator 中构建文件时,都会出现 1 个错误,它说 - 变量 yearString 可能尚未初始化。
指令是获取输入(年份代码 1 - 4)并将其输出为第一年和新生为 1,第二年和二年级为 2,第三年和大三为 3,第四年和大四为 4。
下面的代码。
import java.util.Scanner;
import java.io.*;
public class yearSWITCH {
public static void main(String[] a) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter year code: ");
System.out.println("");
int year = 4;
String yearString;
switch (year) {
case 1: yearString = "First Year";
yearString = "Freshmen";
break;
case 2: yearString = "Second Year";
yearString = "Sophomore";
break;
case 3: yearString = "Third Year";
yearString = "Junior";
break;
case 4: yearString = "Fourth Year";
yearString = "Senior";
break;
}
System.out.println(yearString);
}
}
您必须使用任何值初始化您的 String
,对于您的情况,如果您按如下方式初始化您的 String
就可以正常工作:
String yearString = ""; //String is empty
但请记住,您在 any case (1,2,3,4)
中的 第二个语句 将 覆盖 变量的任何先前值 yearString
因此,print
语句中 particular case
的唯一输出将是 Senior。此问题的解决方案是初始化 2 Strings
并进行如下更改:
String yearString1 = "";
String yearString2 = "";
switch (year) {
case 1: yearString1 = "First Year";
yearString2 = "Freshmen";
break;
case 2: yearString1 = "Second Year";
yearString2 = "Sophomore";
break;
case 3: yearString1 = "Third Year";
yearString2 = "Junior";
break;
case 4: yearString1 = "Fourth Year";
yearString2 = "Senior";
break;
default:
System.out.println("Invalid Input");
break;
}
System.out.println(yearString1 + "\n " +yearString2);
你可以初始化它。
String yearString = "";
请找到下面的代码..我想这会消除你的疑虑。编写代码时,请使用 IDE 。 IDE 会帮你找出错误。
代码是:
package com.raju;
import java.util.Scanner;
public class YearCheck {
public static void main(String[] a) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter year code: ");
int year = keyboard.nextInt();
String yearString="";
switch (year) {
case 1: yearString = "First Year";
yearString = "Freshmen";
break;
case 2: yearString = "Second Year";
yearString = "Sophomore";
break;
case 3: yearString = "Third Year";
yearString = "Junior";
break;
case 4: yearString = "Fourth Year";
yearString = "Senior";
break;
default:
System.out.println("you have entered the value greater than 4");
break;
}
System.out.println(yearString);
}
}