簡體   English   中英

比較用戶輸入和整數

[英]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 ,反之亦然,以進行比較。

請注意,使用==StringString比較無法正常工作(請參見如何在Java中比較字符串? )以獲取詳細信息,請改用String#equals

所以一種可能是StringString

String number = user_input.next();

if (number.equals("2")) {

另一個是intint

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM