获得用户输入后#34;扫描仪名称=新扫描仪(System.in);"如何使用if语句?

时间:2014-11-13 10:32:51

标签: java if-statement java.util.scanner system.in

所以我正在学习java,一点一点地获得更多的知识,现在我跟随tutroials和其他webistes等学习,但我坚持一个问题,我无法弄清楚是什么问题。

import java.util.Scanner;

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

        System.out.print("Player Name?");
        Scanner name = new Scanner(System.in);
        System.out.print(name.nextLine());

        System.out.print(" ,how old are you?");
        Scanner age = new Scanner(System.in);
        System.out.print(age.nextLine());



        if (age >= 15){
            System.out.println("welcome to Azura World");
        }else{
            System.out.println("insufficient experience");
        }
    }
}

从这应该做的是,问一下玩家的名字,一个我打字它应该问名字,你多大了?随着那个,我有输入的年龄,因为我想在if语句中使用它,但它不工作,我不明白为什么。所以请说明是否有时间。

我也正在使用THIS作为现在的指南

3 个答案:

答案 0 :(得分:0)

我认为您只是打印该值,首先将其存储在某个变量中然后进行比较:

String userage = age.nextLine();
int a=Integer.valueOf(userage);
 if (a >= 15){
        System.out.println("welcome to Azura World");
    }else{
        System.out.println("insufficient experience");
    }

答案 1 :(得分:0)

public static void main(String[] args) {
    System.out.print("Player Name?");
    Scanner name = new Scanner(System.in);
    System.out.print(name.nextLine());

    System.out.print(" ,how old are you?");
    Scanner age = new Scanner(System.in);

    int ageVal = age.nextInt();

    System.out.print(ageVal);

    if (ageVal >= 15){
        System.out.println("welcome to Azura World");
    }else{
        System.out.println("insufficient experience");
    }
}

答案 2 :(得分:0)

这是因为java是静态类型的,Scanner的{​​{1}}方法返回一个字符串,而readLine不是String或{{ 1}}因此无法与intInteger进行比较。你需要施展'返回值为int,以便能够使用Paras Mittal或其他解决方案将其与int进行比较(我使用本地Integer功能时,我会选择Para​​s解决方案)。

这会增加一些困难,因为您现在必须处理用户没有为您提供&{39; Integer的情况,例如'回答(正如您最终必须使用的是实际代码,它现在还没有出现)。在这种情况下,readLine将抛出Scanner,你至少有两种方法可以处理(可能还有更多取决于你的想象力):

  1. 因为它继承了Integer,你可以忽略它并让它吹向你的用户,或者是你方法的消费者
  2. 您可以使用InputMismatchException子句包围RuntimeException,然后对您的用例执行重要操作(忽略它并为该值设置聪明的默认值,再次向用户询问),您也可以抢先测试用户输入是否可以转换为整数或继续询问。