繁体   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