簡體   English   中英

Java'if'和'if else'語句未打印出來

[英]Java 'if' and 'if else' statements not printing out

我是Java的新手,最近在最近一周內開始進行編碼。 我試圖構建一些基本的東西,並做了以下工作:

import java.util.Scanner;

public class App {
    public static void main(String[] args){
        // creating scanner object
        Scanner userSex = new Scanner(System.in);
        System.out.println("Enter your sex (male or female): ");
        String sex = userSex.nextLine(); 
        System.out.println("Thank you, you entered " + sex );

        // new scanner
        Scanner userAge = new Scanner (System.in);
        System.out.println("Are you a child or adult: ");
        String age = userAge.nextLine();
        System.out.println("You are a " + sex + " " + age);

        if (userAge.equals("child")) {
            System.out.println("children");
        } else if (userAge.equals("adult")) {
            System.out.println("adults");
        }
    }
}

但是不幸的是,只有代碼的頂部運行。 下面的代碼無法運行,即使我輸入“兒童”或“成人”也不會打印任何內容。

if (userAge.equals("child")) {
    System.out.println("children");
} else if (userAge.equals("adult")) {
    System.out.println("adults");
} 

代替

if(userAge.equals("child")) {
        System.out.println("children");
    }
    else if(userAge.equals("adult")) {
        System.out.println("adults");
    }

做這個

if(age.equals("child")) {
        System.out.println("children");
    }
    else if(age.equals("adult")) {
        System.out.println("adults");
    }

已經提到的一件事是您只需要一個掃描儀對象。 不必為輸入的每個字符串創建一個。 主要問題是您正在測試userAge是否等於“ child”或“ adult”,但是userAge是掃描程序對象。 我認為您打算寫age.equals(“ child”),因為age是輸入的實際String。

以下作品:

import java.util.Scanner;

public class App {
public static void main(String[] args){
    //creating scanner object
    Scanner in = new Scanner(System.in);
    System.out.println("Enter your sex (male or female): ");
    String sex = in.next(); 
    System.out.println("Thank you, you entered " + sex );

    //new scanner
    System.out.println("Are you a child or adult: ");
    String age = in.next();
    System.out.println("You are a " + sex + " " + age);

    if(age.equals("child")) {
        System.out.println("children");
    }
    else if(age.equals("adult")) {
        System.out.println("adults");
    }

    }
    }

與其創建兩個單獨的掃描儀,不如使用一個並調用next()方法。 我還將條件從if(userAge...更改為if(age...

無需創建兩個掃描儀對象。只需創建一個掃描儀對象。 您也可以使用BufferedReader而不是Scanner。在代碼中使用userAge.equals(“ child”)。但這不正確,因為您將掃描器返回的值存儲在age中,請使用age來比較if-else條件(如age) .equals(“ child”)

 Scanner scanner = new Scanner(System.in);
        System.out.println("Enter your sex (male or female): ");
        String sex = scanner.nextLine(); 
        System.out.println("Thank you, you entered " + sex );


        System.out.println("Are you a child or adult: ");
        String age = scanner.nextLine();
        System.out.println("You are a " + sex + " " + age);


        if (age.equals("child")) {
            System.out.println("children");
        } else if (age.equals("adult")) {
            System.out.println("adults");
        }

參考鏈接: https : //docs.oracle.com/javase/tutorial/essential/io/scanning.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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