java - 如何修复 if 语句?
问题描述
我是编码新手,正在努力理解为什么这段代码不起作用。我正在尝试制作一个简单的 if "name = String" 语句,但遇到了很多问题。请看一下并帮助我了解问题所在。问题是底部的 if name 语句。谢谢
导入 java.util.Scanner;
公共课马里兰棒球{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print( "Type 1 to enter a number or 2 to enter a name: " ) ;
int number = scanner.nextInt() ;
if (number == 1)
System.out.print("Enter player number: ");
if (number == 2)
System.out.print("Enter player name: ");
int jersey = scanner.nextInt() ;
String name = scanner.nextLine();
if (jersey == 42) System.out.print
("Which player wears number 42 on his jersey?");
if (jersey == 11) System.out.print
("Which player wears number 11 on his jersey?");
if (jersey == 6) System.out.print
("Which player wears number 6 on his jersey?");
if (jersey == 4) System.out.print
("Which player wears number 4 on his jersey?");
if (name.equals ("Dean")) { System.out.print
("What number does Dean wear?");
};
if (name == "Alleyne") System.out.print
("What number does Alleyne wear");
if (name == "Shaw") System.out.print
("What number does Shaw wear");
if (name == "Costes") System.out.print
("What number does Costes wear");
}
}
解决方案
在您的示例中,我们使用 switch 而不是数千个 if 语句,在 java 中,您应该始终对对象使用 .equals 方法。只有像 int double char 等原语是“==”安全的。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print( "Type 1 to enter a number or 2 to enter a name: " ) ;
int number = scanner.nextInt() ;
System.out.print("Enter player ");
switch (number){
case 1:
System.out.println("number: ");
switch (scanner.nextInt()){
case 42: System.out.print
("Which player wears number 42 on his jersey?");
break;
case 11: System.out.print
("Which player wears number 11 on his jersey?");
break;
case 6: System.out.print
("Which player wears number 6 on his jersey?");
break;
case 4: System.out.print("Which player wears number 4 on his jersey?");
break;
}
break;
case 2:
System.out.println("name: ");
switch (scanner.nextLine()){
case "Dean": System.out.print
("What number does Dean wear?");
break;
case "Alleyne":
System.out.print
("What number does Alleyne wear");
break;
case "Shaw":
System.out.print
("What number does Shaw wear");
break;
case "Costes":
System.out.print
("What number does Costes wear");
break;
}
break;
default: throw new IllegalArgumentException("invalid input");
}
}
推荐阅读
- kotlin - TornadoFX 按键监听器问题
- c# - 如何从另一个窗体应用程序打开窗体应用程序
- mysql - LEFT OUTER JOIN 产生意外结果
- javascript - 单击按钮时打开/关闭动画汉堡菜单
- jquery - 如何在 Jquery 中获取过去 9 个星期日的日期?
- vb.net - 我想知道我在 VB.NET 上使用了多少次“退格”
- python - 根据单行中的频率将分类变量转换为数字
- python - 参数解析器 Python 条件要求
- python - Python Selenium 无法通过 xpath 在页面上找到元素
- javascript - Why is my for loop stopping before everything is evaluated?