[英]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.