Day_03 循环和顺序结构

Scanner键盘录入功能
    键盘录入功能
    步骤:
        1. 导包 import java.util.Scanner;
            导包语句写在 package的下面,class的上面
            使用IDEA开发,可以自动导包!
        2. 创建Scanner对象
             Scanner 对象名 = new Scanner(System.in);
        2.5 : 给用户操作提示  (用敬语)
        3. 键盘录入一个整数
            int 变量名 = 对象名.nextInt();
     注意事项:
         1. InputMismatchException:  输入不匹配异常
            产生原因: 要求录入整数却录入了其他类型
         2. alt + enter也可以导包
         3. 对象产生了,对象的功能可以反复使用
                再次使用功能的时候不需要再创建新的对象
&和|和^的二进制运算和位移运算
二进制的逻辑运算和位移运算
//逻辑运算
System.out.println(3 & 2);//2
	00000000 00000000 00000000 00000011  --> 3
									  &  -->false则为false -->0则为0
	00000000 00000000 00000000 00000010  --> 2
	------------------------------------------
	00000000 00000000 00000000 00000010  --> 2
	
	
System.out.println(3 | 2);//3
	00000000 00000000 00000000 00000011  --> 3
									  |  -->true则为true -->1则为1
	00000000 00000000 00000000 00000010  --> 2
	------------------------------------------
	00000000 00000000 00000000 00000011  --> 3
	
	
System.out.println(3 ^ 2);
	00000000 00000000 00000000 00000011  --> 3
									  ^  --> 相同则为false,不同则为true --> 101,011,110,000
	00000000 00000000 00000000 00000010  --> 2
	------------------------------------------
	00000000 00000000 00000000 00000001  --> 1

//位移运算  
//右位移变小
//右位移1位是除以2 
//右位移2位是除以2的平方
//规律 右位移几位就是除以2的几次方
System.out.println(68 >> 1); //右位移 1
System.out.println(68 / 2); //右位移 1
	00000000 00000000 00000000 01000100  --> 68
	000000000 00000000 00000000 0100010  --> 右位移1-> 34
	0000000000 00000000 00000000 010001  --> 右位移2-> 17

//左位移变大 
//左位移1位是乘以2 
//左位移2位是乘以2的平方
//规律 左位移几位就是乘以2的几次方
System.out.println(68 << 1);
	00000000 00000000 00000000 01000100  --> 68
	0000000 00000000 00000000 010001000  --> 左位移1-> 136
	000000 00000000 00000000 0100010000  --> 左位移2-> 272
        
System.out.println(67 >> 1);	
	00000000 00000000 00000000 01000011 --> 67
	000000000 00000000 00000000 0100001 --> 33        
流程控制语句
顺序结构
分支结构
循环结构
顺序结构
1. 从main方法进入
2. 从上至下执行代码
3. 每一句代码都是从等号的右边开始执行最后执行赋值操作
4. 在等号的右边执行时,遵循从左到右执行顺序(*,/,% > +,-  小括号的优先级最高)
    
//百分之95的代码都是这样执行的
分支结构(选择结构)

选择结构会让结构后面的代码执行!!

switch
switch : 分支语句,开关语句

格式:
    switch(表达式){
        case1:
            语句体1;
            break;
        case2:
            语句体2;
            break;
            ....
        default: 
            语句体n+1;
            break;
    }

格式解释:
	switch: 关键字 -> 就代表switch语句
	表达式: 可以是常量也可以是变量 -> 建议使用变量
		表达式的类型有且仅有: byte,short,char,int,枚举,String (只能6选一)
    case : 事件,情况      
    值1,2... : 必须是常量,但是不可以相同
    	作用: 等待表达式的结果进行全等(==)比较的
    语句体: 当表达式的结果和case后的值相等需要执行的代码	
    break : 关键字 -> 中断,打断,结束
    	作用: 用来结束switch语句
    default : 缺省的,默认的
    	作用 : 兜底 -> 当所有的case值和表达式结果都不匹配的时候执行的位置
    	
执行流程:
	1. 计算switch小括号内的表达式结果
	2. 拿着表达式的结果从上至下依次和case后的值进行 全等 比较
	3. 若有case值和表达式结果相等,进入当前case执行当前case中的语句体,遇到break或者switch的反大括号结束switch语句  //只要匹配上了就不会再匹配了
	4.case值和表达式结果都不相等,若有default语句执行default语句中的语句体;
case穿透现象
    case穿透:
        当执行case中的语句后,没有遇到break,就会击穿下一个case执行下一个case中的语句体;
        直到遇见breakswitch的反括号结束switch语句

    case穿透是不好的,一定要写break; 弊大于利
if
if : 假如 假设 如果 ...
    
if 的第一种格式: 
    if(结果为boolean类型的式子){
		语句体;
    }
	//if后面的到代码
	执行流程:
		1. 计算if小括号内的语句结果 (要么true要么false)
        2.if小括号内语句结果是true的时候,执行if大括号内的语句体;
        3.if小括号内语句结果是false的时候,不执行if结构内的代码,结束if语句执行if后的代码;

	if的第一种格式是对一种情况的操作和判断
	
	伪代码:
		//和小丽约会
		if(小丽来不来){//来是true 不来是false
            //来了干嘛
            去小树林走走;
        }

if 的第二种格式:
	if(结果为boolean类型的式子){
		语句体1;
    }else{ //else : 其他
        语句体2;
    }

	执行流程:
		1. 计算if小括号内的语句结果 (要么true要么false)
        2.if小括号内语句结果是true的时候,执行if大括号内的语句体1;
		3.if小括号内语句结果是false的时候,执行if大括号内的语句体2;

	if的第一种格式是对两种情况的操作和判断
	
	伪代码:
		//和小丽约会
		if(小丽来不来){//来是true 不来是false
            //来了干嘛
            去小树林走走;
        }else{
            //不来干嘛
            约小丽闺蜜小红;
        }

if 的第三种格式:  //完整版的if
	if(结果为boolean类型的式子1){
		语句体1;
    }else if(结果为boolean类型的式子2){
        语句体2;
    }
		..这里有很多else if..
	else{ //else : 其他
        语句体n+1;
    }

	执行流程:
		1. 判断第一个表达式,如果为true执行语句体1,结束if
		2. 如果第一个表达式结果为false,判断第二个表达式,如果为true执行语句体2,结束if
		3. 若所有的if判断结果都为fale,若有else执行else中的语句体n+1
    
     if的第三种格式是对多种(>2)情况的操作判断
     
     伪代码:
		//和小丽约会
		if(小丽来不来){//来是true 不来是false
            //来了干嘛
            去小树林走走;
        }else if(小丽的男朋友来没来){
            //说明她男朋友来了
            打车跑;
        }else if(小丽的闺蜜小红来没来){
            //来了干嘛
            去小树林走走;
        }else{
            //不来干嘛
            约小丽闺蜜小红;
        }
循环结构
初始化语句: 定义变量控制循环 -> 初始化语句只会执行一次!
判断条件语句: 结果为boolean类型式子,式子的结果决定了循环是否执行(true执行,false不执行)
    //循环执行几次就执行几次
步进表达式(控制条件语句): 初始化语句定义的变量值的变化 (变化方向往不满足循环的方向前进)
    //循环执行几次就执行几次
循环体语句: 需要重复执行的代码
	//循环执行几次就执行几次
for
格式:
    for(初始化语句1;判断条件语句2;步进表达式3){
		循环体语句4;
    }

执行流程:
	1. 执行初始化语句
	2. 执行判断条件语句
		-> false 立刻结束循环
    3. 若判断条件语句的结果是true,执行循环体语句
    4. 执行步进表达式
    5. 从第二步骤开始重复执行
    
执行流程代码:
	1 -> 2 -true-> 4 -> 3 -> 2 -true-> 4 -> 3 -> ....
           -false-> 结束循环    -false-> 结束循环
           
debug断点调试
    Debug调试:
        bug : 小臭虫
        de : 抵抗
    步骤:
        1. 打断点 : 对着行号点一下(一个方法内点一个)
            在哪打断点 : 哪里不会点哪里
        2. 断点执行 -> 右键 debug as
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值