Java学习笔记3-两个常用工具类和流程控制语句

本文介绍了Java中的Scanner类用于键盘输入,演示了如何获取用户输入并进行年龄验证,同时讲解了Random类的随机数生成,包括nextInt和nextDouble方法。还详细解析了流程控制中的if-else、switch和循环结构,如for和while的使用示例。
摘要由CSDN通过智能技术生成

1.两个常用工具类

(1)(Scanner)  键盘录入可以允许用户在程序运行过程中向程序输入数据,达到人机交互的效果,提高用户体验度。

        1. 导包 ( import java.util.Scanner; ) 告诉程序这个工具在何处

        2. 创建对象( Scanner sc = new Scanner(System.in); ) 创建工具

        3. 获取数据 ( int num = sc.nextInt(); ) 使用工具获取数据

                sc.next(); 接收用户输入的字符串,从有效字符开始接收(非空格),知道遇到enter才能结束功能,但是接收过程中如果遇到空格,就停止接收,但是功能不会结束。

sc.nextLine(); 接收用户输入的一整行字符串

        4.关闭(可写可不写)
            sc.close();
            使用当前类中完全使用完毕之后进行关闭,以便于回收资源。

//实例代码
//1.导入包
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        //2.创建对象获取工具
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的年龄:");
        //3.使用工具
        int age = sc.nextInt();
        if(age<18){
            System.out.println("小屁孩一个");
        }else{
            System.out.println("成年人了,惹不起,惹不起");
        }
		//4.关闭工具(可写可不写)
		sc.close();
    }
}

(2)Random   

        Math 类提供了一个名叫 random 的方法, 可以随机生成 [0,1) 之间的任意double类型的数据。

nextInt(整数n) 产生int类型的[0,n)整数
nextDouble() 产生一个double类型 的随机小数-->[0.0,1.0)

总结公式:
        产生某一个范围内的随机整数
       1. [0,max]  -> ran.nextInt(max+1)
       2.[min,max]  -> ran.nextInt(max-min+1)+min

       3.[min,max) -> ran.nextInt(max-min)+min 

//实例代码
import java.util.Random;
public class Test1{  
	
	public static void main(String[] args){ 
		//1.导包
		//2.创建Random类型的引用
		Random ran = new Random();
		//3.生成int范围的随机整数
		int num1 = ran.nextInt();
		System.out.println(num1);

2.流程控制语句

        流程控制语句分为:顺序结构 : 从上到下,从左到右-->默认
                                        选择结构 : 满足条件执行对应的代码
                                        循环结构 : 让一些代码重复不停的执行多次

1.选择结构

      (1)if选择(分为三种)
       if单选泽|单分支
            if(条件表达式){
                满足条件执行的代码段;
            }
            条件表达式  : 必须为一个值为boolean的表达式
            执行流程:
                1.计算条件表达式
                2.如果结果为true,执行{}中的语句体
                3.如果结果为false,就直接跳过if结构
        if-else双选择|双分支
            if(条件表达式){
                满足条件执行的代码段;
            }else{
                不满足条件执行的代码段;
            }
            注意: 双选择一定能够执行语句体|一定能够得到结果
        if-else if 多选择|多分支
            if(条件表达式1){
                满足条件表达式1执行的语句体1;
            }else if(条件表达式2){
                满足条件表达式2执行的语句体2;
            }else if(条件表达式3){
                满足条件表达式3执行的语句体3;
            }.....
            else{ -->接盘侠
                如果以上都不满足执行得到语句体n;
            }
        
        注意: 当{}中的语句体只有一句,前后的{}可以省略

        (2)switch选择(定值判断)

 switch 定值判断,能用if的不一定能用switch,能用switch都能使用if
    
    switch(表达式){
        case 值1:
            语句体1;
            break;
        case 值2:
            语句体2;
            break;
        ....
        default:
            语句体n;
            break;
    }
    
    表达式 :  一般为一个变量,可以为一个表达式,常量都可以
        结果数据类型要求: byte,short,int,char,枚举类型(jdk5),String字符串(jdk7)
    case : 后面接一个定值,拿到表达式的结果与case后面的定值进行判断是否相等,相等执行对应的语句体,不相等,继续向下判断从上到下一次判断
    break : 终止当前的switch语句
            如果没有break会发生case穿透 : 从当前满足条件的语句体开始执行,一直向下 穿透,无论下面的case是否满足条件都不再判断,直接执行语句体,
                直到遇到下一个break或者switch语句的结束而结束
    default : 以上的case都不满足,name就执行default中的内容
         位置可以在switch语句中的任意位置
        一般定义在switch语句的最后,如果切换位置,注意break定义

2.循环结构

        分为三种:    for循环   次数循环
                              while循环 条件循环
                              do..while循环  


for循环(重要):是支持迭代的一种通用结构,是最有效、最灵活的循环结构

       for(条件初始化;条件判断;条件变化 ){
            重复执行的语句体;
        }
        条件初始化 : 声明一个变量i并且第一次赋值  -->i条件
        条件判断 : 对变量的i判断
            决定循环是否结束
        条件变化|迭代因子 : 变量i自身值的改变    
        
     执行顺序:
            1.条件初始化 i
            2.条件判断,满足执行语句体,不满足条件,结束循环
            3.条件变化
            从第二次循环开始,重复执行2,3步骤
    注意:
        for循环的变量条件i只属于当前 for循环,只能在循环中使用
        for可以通过条件的变化控制循环的次数,循环体中可以使用条件的值,条件变量可以按照想要的逻辑进行变化,实现需求
        考虑: 是否存在一些代码重复执行,如果是,规律可循,可以选择使用循环结构
        如果循环体语句只有一句,前后的{}可以省略

//实例代码
public class Test2{  
	public static void main(String[] args){ 
		//通过循环,输出10次
		for(int i=1;i<=10;i++){
			//再循环的循环体中可以使用循环的条件i
			System.out.println("明天的你,会感谢今天努力的自己!!!!");
        }

	}

} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值