Java 代码跳过第一个 if 条件并跳过其他条件

标签 java

我正在编写一个简单的程序,当年龄小于 13 岁、13 岁至 18 岁之间以及 18 岁以上时,该程序会产生特定的输出。我的代码不会读取第一个 if 语句,并且我不知道我在做什么错了。

import java.io.*;
import java.util.*;
public class Person {
public  int age;    

public Person(int initialAge) {
    // Add some more code to run some checks on initialAge
    if (initialAge>-1){
        age=initialAge;
    }
    else 
        System.out.println("Age is not valid, setting age to 0. ");
        age=0;
}

public void amIOld() {
    // Write code determining if this person's age is old and print the correct statement:
    if(age<13)
     System.out.println("You are young.");   


    else if(age>=13&&age<18)
        System.out.println("You are a teenager."); 

   else 
    System.out.println("You are old.");


}

public void yearPasses() {
    // Increment this person's age.
    age++;
}
       public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int T = sc.nextInt();
            for (int i = 0; i < T; i++) {
                int age = sc.nextInt();
                Person p = new Person(age);
                p.amIOld();
                for (int j = 0; j < 3; j++) {
                    p.yearPasses();
                }
                p.amIOld();
                System.out.println();
            }
           sc.close();
        }
    }

最佳答案

在构造函数中,无论年龄是多少,您都将 age 设置为 0。它不在 else 语句内。用括号括起来。

关于Java 代码跳过第一个 if 条件并跳过其他条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379627/

相关文章:

java - 为什么我的单词计数器有时会减一?

java - XWPFRun.setText() 似乎不尊重换行符或制表符?

Java监控activemq但不轮询队列

java - 如何使用连接池在 JM 中使用 activeMQ 创建发布者

java - 如何配置 spring 来执行重叠的 fixedRate 任务?

java - 为什么程序找不到指定的系统文件以及如何修复?

javascript - 使用 angularjs 的货币转换器

java - 错误: cannot find symbol method setSupportImageTintList(ColorStateList)

java - 所需类型与找到的类型相同

java - 代理关闭后,从 ActiveMQ 队列读取的独立 java 程序不会自动重新连接