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