![](/img/trans.png)
[英]How do I make my applet turn the user's input into an integer and compare it to the computer's random number?
[英]Compare user input with integer
我正在编写一个程序,向用户询问一个简单的数学问题,它必须告诉他们是正确的还是错误的。 我遇到错误
package exercises;
import java.util.Scanner;
public class Exercises {
public static void main(String[] args) {
Scanner user_input = new Scanner (System.in);
String number;
System.out.println("Consider the following equation: 5x - 10");
System.out.println("Solve for x.")
number = user_input.next();
if (number == 2);{
System.out.println("Correct.");
}else{
System.out.println("Incorrect. The answer is 2.");
}
}
您的代码有两个主要问题和一个小问题。
第一个是if语句后的分号。 分号完成if语句,它是不带花括号的if语句的缩写,例如:
if (a > b) doMethod();
通过省略表达式并仅写分号,您可以表示有效的NOP (无操作),因此
if (a > b) ;
是有效的语句,基本上不执行任何操作。
你可能打算
if (number == 2) {
System.out.println("Correct.");
} else {
System.out.println("Incorrect. The answer is 2.");
}
另一个问题是您的number
变量是String
但是将其与int
进行了比较。 那行不通,结果永远是false
。 您需要将String
转换为int
,反之亦然,以进行比较。
请注意,使用==
将String
与String
比较无法正常工作(请参见如何在Java中比较字符串? )以获取详细信息,请改用String#equals
。
所以一种可能是String
和String
:
String number = user_input.next();
if (number.equals("2")) {
另一个是int
与int
:
String number = user_input.next();
int asValue = Integer.parseInt(number);
if (asValue == 2) {
或直接使用Scanner#nextInt
:
int number = user_input.nextInt();
if (number == 2) {
较小的问题是您在执行以下语句后忘记了分号
System.out.println("Solve for x.") // Semicolon needed
在Java中,每个表达式都必须以分号结尾,这是一种严格的语言。
您有两个语法错误,都与分号有关;
。
第一个错误是这行System.out.println("Solve for x.")
。 在Java中,每个语句必须以;
结尾;
。 这行必须是System.out.println("Solve for x.");
。
第二个错误是在if语句中: if (number == 2);{
。 您应该在小括号后删除分号。 正确的代码行是if (number == 2) {
。
您正在尝试将number
它是一个字符串)与一个整数进行比较,这是不可能完成的,这里有两个选择
1)从
System.in
读取一个整数
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
String number;
System.out.println("Consider the following equation: 5x - 10");
System.out.println("Solve for x.");
number = user_input.next();
if (Integer.parseInt(number) == 2) {
System.out.println("Correct.");
} else {
System.out.println("Incorrect. The answer is 2.");
}
}
2)将
number
解析为整数,然后将其与int进行比较
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
int number;
System.out.println("Consider the following equation: 5x - 10");
System.out.println("Solve for x.");
number = user_input.nextInt();
if (number == 2) {
System.out.println("Correct.");
} else {
System.out.println("Incorrect. The answer is 2.");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.