java项目区域
我正在做一个项目,你在扫描仪上输入一个州的缩写,然后程序会告诉你该州在美国的哪个地区。我认为我的大部分代码都是正确的,但我以前从未使用过switch
我已经将我的工作细化为一个错误,在我的第一个代码块(switch部分)中缺少一个return语句。我不知道是否有其他代码影响它,所以我只想在这里发布它的大部分内容。提前谢谢
import java.util.Scanner;
public class Regions {
public static String getRegion (String stateName){
String region = "";
switch(stateName){
case "ME":
case "VT":
case "NH":
case "MA":
case "CT":
case "RI":
region = "New England";
break;
case "NY":
case "NJ":
case "DE":
case "MD":
case "VA":
case "NC":
case "SC":
region = "Atlantic";
break;
case "GA":
case "FL":
case "MS":
case "AL":
case "LA":
case "TN":
region = "Southeast";
break;
case "PA":
case "OH":
case "MI":
case "IN":
case "IL":
case "WI":
case "MN":
case "KY":
case "WV":
case "IA":
region = "Midwest";
break;
case "ND":
case "SD":
case "KS":
case "NE":
case "MO":
region = "Great Plains";
break;
}
}
public static void main (String[]args){
Scanner s = new Scanner(System.in);
System.out.println("Enter a two-letter state abbreviation:");
String stateName = s.nextLine();
String region = getRegion(stateName);
System.out.print("The state " + stateName);
if (region == "New England"){
System.out.print(" is in the New England region!");
}
else if (region == "Atlantic") {
System.out.print(" is in the Atlantic region!");
}
else if (region == "Southeast") {
System.out.print(" is in the Southeast region!");
}
else if (region == "Midwest") {
System.out.print(" is in the Midwest region!");
}
else if (region == "Great Plains") {
System.out.print(" is in the Great Plains region!");
}
else {
System.out.println ("That's not a state.");
}
}
}`
# 1 楼答案
第一个问题:
getRegion()
中缺少返回 加上
添加该方法的结尾
第二个问题:将字符串与
==
而不是equals
进行比较 在
main
中,替换所有与
# 2 楼答案
当向方法传递无效状态时,最终需要添加一个结果
代码的其余部分是正确的,但是您需要在方法末尾返回
region
更好的代码是直接返回,而不是使用区域设置变量
region
正如其他人所说,在
main
中也有错误,但我只关注被问到的getRegion
方法。不要使用==
运算符来比较字符串,请使用方法equals
==
检查两个字符串是否是相同的对象,equals
检查两个字符串对象是否具有相同的内容# 3 楼答案
只是想把你的样子
在getRegion方法的末尾。 就这样