0

我的代码有什么问题?'if' 语句似乎不起作用!我运行程序并输入我的姓名和年龄。我输入了一个有资格使用该程序的年龄,但它说我太年轻了。我对此进行了编码,但它不会让我使用它!

import java.util.Scanner;

public class learning {
    public static void main(String args[]){

        Scanner uI = new Scanner(System.in);

        System.out.println("Enter your name: ");
        System.out.print(uI.nextLine());
        System.out.println(", enter your age: ");
        uI.nextInt();
        int person = 10;

        if (person > 10){
            System.out.println("You may use this program!");
        }else{
            System.out.println("You may not use this program. You are too young!");
        }

        uI.close();
    }
}
4

6 回答 6

3

您没有分配uI.nextInt();给任何 int 变量。像 :

    System.out.println(", enter your age: ");
    int personAge = uI.nextInt();
    int person = 10; // instead use this as constant, public static final int MIN_ALLOWED_AGE = 11;

    if (personAge > person){   // if (personAge >= MIN_ALLOWED_AGE){
        System.out.println("You may use this program!");
    }else{
        System.out.println("You may not use this program. You are too young!");
    }
于 2012-12-28T05:08:11.977 回答
1

好吧,现在你的 if 语句是:

if (person > 10)

如果您希望它适用于 10 岁及以上,则应该是:

if (person >= 10)

希望有帮助!

于 2012-12-28T05:04:31.973 回答
1

10 永远不会大于 10,因此您的代码无法正常工作。做这个

person>=10
于 2012-12-28T05:05:01.753 回答
1

使用此代码

public class learning {
   public static void main(String args[]){

    Scanner uI = new Scanner(System.in);

    System.out.println("Enter your name: ");
    System.out.print(uI.nextLine());
    System.out.println(", enter your age: ");

    int person = uI.nextInt();

    if (person > 10){
        System.out.println("You may use this program!");
    }else{
        System.out.println("You may not use this program. You are too young!");
    }

    uI.close();
  }
}
于 2012-12-28T05:14:19.690 回答
0
    int person = 10;

    if (person > 10){
        System.out.println("You may use this program!");
    }else{
        System.out.println("You may not use this program. You are too young!");
    }

你根本没有改变人的价值!它应该始终是 10。

于 2012-12-28T05:05:34.987 回答
0

好的,首先您在第 12 行为变量分配了一个静态值,当您应该使用 >= 时,您正在使用 ">" 运算符。最后,您可以考虑在测试之前将 uI.nextInt() 的结果分配给 person,而不是将其设置为静态值。

于 2012-12-28T05:05:39.050 回答