Java中Scanner:键盘输入功能的实现

Scanner:键盘输入功能的实现

  • 如何从键盘获取不同类型(基本数据类型、String类型)的变量:使用Scanner

  • 键盘输入代码的四个步骤

    • 1.导包:import java.util.Scanner;
    • 2.创建Scanner类型的对象:Scanner scan = new Scanner(System.in);
    • 3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
    • 4.释放资源:scan.close();
  • 注意:需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常导致程序终止。

案例:小明注册某交友网站,要求录入个人相关信息。如下:

请输入你的网名、你的年龄、你的体重、你是否单身、你的性别等情况。

Scanner类中提供了获取byte \ short \ int \ long \ float \ double \ boolean \String 类型变量的方法。
注意:没有提供获取char类型变量的方法。需要使用next().charAt(0)

//步骤1:导包 import java.util.Scanner;
import java.util.Scanner;
class ScannerTest{
	public static void main(String[] args){
        //步骤2:创建Scanner类型的对象:`Scanner scan = new Scanner(System.in);`        
        Scanner scan = new Scanner(System.in);   //变量类型 变量名 = 变量值
        //做一个提示
        System.out.println("欢迎进入");
        System.out.print("请输入你的名字:");
        
        //步骤3:调用Scanner类的相关方法(`next() / nextXxx()`),来获取指定类型的变量
        String name = scan.next();   //网名
        
        System.out.print("请输入你的年龄:");
        int age = scan.nextInt();     //年龄
        
        System.out.print("请输入你的体重:");
        double weight = scan.nextDouble();     //体重
        
        System.out.print("请输入你是否婚配---true/false:");
        boolean isMarried = scan.nextBoolean();     //婚配
        
        System.out.print("请输入你的性别---男/女:");
        char gender = scan.next().charAt(0);     //性别
        
        
        
        System.out.println("name = "+name);
        System.out.println("age = "+age);
        System.out.println("weight = "+weight);
        System.out.println("isMarried = "+isMarried);
        System.out.println("gender = "+gender);
        
        //步骤4:释放资源:`scan.close();`
        scan.close();
    }
}

练习1:

大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上;富:财富1千万以上;帅:是。

如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”

提示:
System.out.println(“身高: (cm));
scanner.nextInt();

System.out.println(“财富: (千万));
scanner.nextDouble();

System.out.println(“帅否: (true/false));   
scanner.nextBoolean();  



System.out.println(“帅否: (是/否));
scanner.next();   "是".equals(str)  
import java.util.Scanner;
public class ScannerExer1{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        System.out.println("身高:(cm)");
        int high = scan.nextInt();
        
        System.out.println("财富:(千万)");
        double d1 = scan.nextDouble();
        
        System.out.println("帅:(是/否)");
        String s1 = scan.next();
        
        //帅以字符串接收了
        if(high > 180 && d1 > 1.0 && s1.equals("是")){
            System.out.println("我一定要嫁给他!!!");
        }else if(high > 180 || d1 > 1 || s1.equals("是")){
            System.out.println("嫁吧,比上不足,比下有余。");
        }else{
            System.out.println("不嫁");
        }
        
        //帅以布尔
        /*
        System.out.println("帅:(true/false)");
        Boolean b1 = scan.nextBoolean();
        if(high > 180 && d1 > 1000 && b1){
            System.out.println("我一定要嫁给他!!!");
        }else if(high > 180 || d1 > 1 || b1){
            System.out.println("嫁吧,比上不足,比下有余。");
        }else{
            System.out.println("不嫁");
        }
        */
        
        //关闭资源
        scan.close();
    }
}

练习2

我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。

编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。
import java.util.Scanner;
public class DogLife{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        System.out.println("请输入狗狗的年龄:");
        int dogAge = scan.nextInt();
        if(dogAge < 0){
            System.out.println("狗狗的年龄不能是负数哦,请重新输入");
            System.out.println("请输入狗狗的年龄:");
        }else if(dogAge > 0 && dogAge <= 2){
            double earAge = dogAge * 10.5;
            System.out.println("狗狗的年龄为:"+earAge);
        }else{
            double age = 10.5 + 10.5 + (dogAge - 2)*4;
            System.out.println("狗狗的年龄为:"+age);
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值