【流程控制语句】

模块四. 流程控制语句

第一章. Scanner键盘录入

1. 概述:Scanner类是java定义好的一个类

2. 作用:将数据通过键盘录入的形式放到代码中参与运行

3. 位置:包 java.util 下

4. 使用:
    a. 导包:通过导包找到要使用的类	明确使用的是哪个包下的哪个类 ->导包位置:类				上
    	import java.util.scanner -> 导入的是哪个包下的哪个类

    b. 创建对象
    	Scanner 变量名 = new Scanner(System.in);

    c. 调用方法,实现键盘录入
    	变量名.nextInt() 输入整数int型
    	变量名.next() 	输入字符串 String型
        变量名.next(): 录入字符串 —> 遇到空格和回车就结束录入
		变量名.nextLine(): 录入字符串 -> 遇到空格依然录入,遇到回车才结束录入

在这里插入图片描述
在这里插入图片描述

异常-> InputMismatchException 输入类型不匹配异常
原因:实际录入的数据和要求录入的数据类型不一致

第二章. Random随机数

学习Random和学习Scanner方式方法一样

1. 概述:Random同样是java自带的一个类

2. 作用:可以在指定的范围内随机一个整数

3. 位置:java.util

4. 使用:
  a.导包:import java.util.Random
  b.创建对象:
  	Random 变量名 = new Random();
	c.调用方法,生成随机数:
      变量名.nextInt() ->int的取值范围内随机一个整数 (+-21亿里随机一个							整数)
    在指定范围内随机生成一个数
      	变量名.next(int bound) ->0-(bound-1) 范围内
      	变量名.nextInt(10) -> 0-9范围

      在1-10之间随机一个数:
      	nextInt(10)+1 -> (0-9)+1 ->1-10范围
      或者	
      	nextInt(1,10)

第三章. 流程控制语句

switch if循环必须要先掌握定义格式,然后掌握执行流程(带一个数进去,根据执行流程观察值的变化)

1. switch基本使用

1. 格式:
    switch(变量){
        case 常量值1:
            执行语句1;
            break;

        case 常量值2:
            执行语句2;
            break;
        case 常量值3:
            执行语句3;
            break;
            ...
                default:
            执行语句n;
            break;
    }

2. 执行流程:
	用变量接受的值和下面case后面的常量值匹配,匹配上哪个case就执行哪个case对应的	执行语句(类型需要一样)
    如果以上所有case都没有匹配上,就走default对应的执行语句n;

3. break关键字:代表的是结束switch语句

4. 注意:switch 能匹配什么类型的数据:
    byte short int char 枚举类型 String类型 
   (float double则不能,因为 switch 是精准匹配,而float double 存在精度损失	问题,float精度损失更严重)

2. case的穿透性

1. 如果没有 break ,就会出现 case 的穿透性,程序就一致往下穿透执行,直到遇到了 	break 或者 switch 代码执行完毕,就停止了

第四章. 分支语句

1. if的三种格式

  • if的第一种格式

1. 格式:
  if(boolean表达式){
      执行语句;
  }

	if(boolean表达式)
      执行语句;

2. 执行流程:
  先走if后面的boolean表达式,就走if后面大括号中的执行语句,否则就不走

3. 注意:
  if后面跟的是boolean表达式,只要是结果为boolean型的,都可以放在小括号中,哪     怕直接写一个true或者false

  • if的第二种格式

1. 格式:
  if(booelan表达式){
      执行语句1;
  }else{
      执行语句2;
  }

2. 执行流程:
  a.先走if后面的boolean表达式,如果是true,就走if后面的执行语句1
  b.否则就走else后面的执行语句2
3. if else不可能同时走
  • if的第三种格式

1. 格式:
  if(boolean表达式1){
      执行语句1;
  }else if(boolean表达式2){
      执行语句2;
  }else if(boolean表达式3){
      执行语句3;
  }...else{
      执行语句n;
  }

2. 执行流程:
  从if开始往下挨个判断,哪个if判断结果为true,就走哪个if对应的执行语句,如果以		上所有的判断都是false,就走else对应的执行语句n

3. 使用场景:2种情况以上的判断
public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("请输入data1的值(int型):");
      int data1 = sc.nextInt();
      System.out.print("\n");
      System.out.print("请输入data2的值(int型):");
      int data2 = sc.nextInt();
      System.out.print("\n");

      /*if (data1 > data2){
          System.out.println(data1 + ">" + data2);
      }else if (data1 < data2){
          System.out.println(data1 + "<" +data2);
      }else {
          System.out.println(data1 + "=" + data2);
      }
      */

       if (data1 > data2){
          System.out.println(data1 + ">" + data2);
      }else if (data1 < data2){
          System.out.println(data1 + "<" +data2);
      }else if(data1 == data2){
          System.out.println(data1 + "=" + data2);
      }

  }
注意:最后一种情况,不一定非得用else,但是必须要保证所有的情况都判断了

2. 练习

1. 任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
2. 利用if else 求出两个数的较大值
3. 案例:
    从键盘输入年份, 请输出该年的2月份的总天数。闰年2月份29天,平年28天。
    闰年:(ab都要考虑)
    	a.能被4整除,但是不能被100整除
    	b.或者能直接被400整除
4. 需求:
    键盘录入一个星期数(12....7),输出对应的星期一,星期二,...星期日
    例如:
    输入	1			输出	星期一
    输入	2			输出	星期二
    ...
    输入	7		  	输出	星期日
    输入	其他数字     输出	 数字有误

5. 根据最新的年龄段划分标准:
    0-6岁为婴幼儿
    7-12岁为少儿
    13-17岁为青少年
    18-45岁为青年
    46-69岁为中年
    69岁以上为老年
  请键盘录入一个年龄,判断属于什么年龄段  

3. if elseswitch区别

switchif的区别:debug(可以看代码的执行流程)

  1. switch 会直接跳到相匹配的case(精准匹配)

  2. if:从上到下挨个判断 ->实际开发常用if ,灵活

第五章. 循环语句

1. 什么时候使用循环语句

当我们发现一件事或者一段代码在反复执行,可以考虑使用循环语句

2. for循环

1. 格式:
    for(初始化变量;比较;步进表达式){
        循环语句;	//哪段代码循环执行,就将哪段代码放到此处
    }

2. 执行流程:
    a. 先走初始化变量
    b. 比较,如果是 true ,走循环语句,然后才走步进表达式(初始化的变量的值进行变		化)
    C. 再比较,如果还是 true ,继续走循环语句,再走步进表达式
    d. 再比较,知道比较结果为 false ,循环结束

3. 快捷键:
    循环次数.fori 回车练习

练习

1. for循环:求1-3之间的数据和,并把求和结果输出到控制台
2. 需求:求出1-100之间的偶数和
3. 统计一下1-100之间的偶数个数   

3. while循环

1. 格式:
	初始化变量;
	while(比较){
      循环语句;
      步进表达式;
  }

2. 执行流程:
  a. 初始化变量
  b. 比较,如果是true,就走循环体内的语句(循环语句和步进表达式)
  c. 再比较,如果是true,继续走循环语句,继续走步进表达式
  d. 再比较,直到比较为false,循环结束

4. do...while循环(了解)

1. 格式:
  初始化变量;
	do{
      循环语句;
      步进表达式;
  }whie(比较);

2. 执行流程:
	a. 初始化变量
  b. 走循环语句
  c. 走步进表达式
  d. 判断,如果是true,继续循环,直到比较为false,循环结束

3. 特点:
	至少循环一次

5. 循环控制关键字

1. break:
	a.switch 中代表结束 switch 语句
    b. 在循环中代表结束循环

2. continue:
	结束当前本次循环,直接进入下一次循环,直到条件为 false 为止 

6. 死循环

1. 概述:
  一直循环

2. 什么条件下一直循环:
  比较条件一直是 true
public class Demo01Endless {
  public static void main(String[] args) {
      //死循环
//        int count = 0;
//        for (int i = 0; i < 10; ) {
//            count++;
//            System.out.println("I Love Java" + count);
//        }
      //死循环
//        for (;;){}
      while(true){
          System.out.println("I Love Java !");
      }
  }
}

7. 嵌套循环

1. 概述:循环中还有循环 

2. 执行流程:
	先执行外层循环,再进入内层循环,内层循环就一直循环,直到内层循环结束,外层循环		才进入下一次循环,然后再进入内层循环,(此时内层循环是重新进入的)内层循环从最		开始循环,直到内层循环结束,就这样,直到外层循环结束,整体结束
public class Demo02Nest {
    public static void main(String[] args) {
        for (int fen = 0; fen < 60; fen++) {
            for (int miao = 0; miao < 60; miao++) {
                System.out.println(fen + "分" + miao + "秒");
            }
        }

    }

练习

1. 打印矩形:
2. 打印直角三角形
3. 猜数字小游戏:录入数字比随机数字大 则猜大了,反则猜小了,一样则猜对了
    1. 创建 ScannerRandom 对象
    2. 调用Random中的 nextInt(100+ 11~100之间随机一个数 rdNumber
    3. 调用Scanner中的nextInt()方法,键盘录入一个你猜的数 scNumber
    4. 如果scNumber大于rdNUmber,证明猜大了
    5. 如果scNumber小于rdNUmber,证明猜小了
    6. 如果scNumber等于rdNUmber,证明猜对了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值