java基础——Day04——分支结构

Day 04

一、位运算(拓展,了解)

class Demo01 {
    public static void main(String[] args) {
        int a = 5;
        int b = 3;
        /*
             0000 0101
            |0000 0011
            ==========
             0000 0111  =   7
        */
        System.out.println(a | b);
​
        /*
             0000 0101
            &0000 0011
            ==========
             0000 0001  =   1
        */
        System.out.println(a & b);
​
        /*
             异或
             0000 0101
            ^0000 0011
            ==========
             0000 0110
        */
        System.out.println(a ^ b);
    }
}

二、流程控制(记住)

  • 顺序结构

    class Demo02 {
        public static void main(String[] args) {
            // 顺序结构,代码自上向下顺序执行
            System.out.println("Hello World!1");
            System.out.println("Hello World!2");
            System.out.println("Hello World!3");
            System.out.println("Hello World!5");
            System.out.println("Hello World!4");
            System.out.println("Hello World!6");
            System.out.println("Hello World!7");
            System.out.println("Hello World!" + a);
            int a = 8;
        }
    }

     

  • 分支结构

  • 循环结构

三、分支结构--if(掌握)

3.1 语法结构

if(判断条件){

条件为true的时候执行的代码

}

if java中的关键字

判断条件

可以直接书写boolean值

也可以是返回值是boolean类型的表达式 {}

满足条件--条件为true时候执行的代码

3.2 if

class Demo03 {
    public static void main(String[] args) {
        System.out.println("Hello World!");
        
        // 假设你穿越到了888年,只能带10元钱的东西,你想带什么过去
        int year = 88;
        /*
        if(年份是888年){
            我希望携带一些物品过去
        }
        */
​
        if(year == 888){
            System.out.println("我希望携带一些火锅丸子过去...");
        }
​
        // 判断一把刀是不是管制刀具
        int knifeLen = 155;
​
        if(knifeLen >= 220){
            System.out.println("这个刀子是管制刀具,要没收...");
        }
​
        if(knifeLen < 220){
            System.out.println("这个刀子不是管制刀具,可以携带...");
        }
    }
}

3.3 if...else

if(判断条件){

代码块1

}else{

代码块2

}

if 是java中的关键字,开启条件判断

判断条件是一个boolean类型的结果

代码块1是满足if中条件时候执行的代码

else是java中的关键字,if条件为false的时候执行else后面的代码块2

案例01

class Demo04 {
    public static void main(String[] args) {
        System.out.println("Hello World!");
        int knifeLen = 150;
​
        // if...else
        if (knifeLen >= 220){
            System.out.println("管制刀具");
        }else{
            System.out.println("非管制刀具");
        }
    }
}

案例02

import java.util.Scanner;
class Demo05 {
    public static void main(String[] args) {
        // 用户输入用户名和密码,判断是否成功登陆
        /*
            1、导入Scanner
            2、创建Scanner对象
            3、提示输入用户名
            4、获取用户名
            5、提示输入密码
            6、获取密码
            7、比较用户名和密码
            8、输出结果
        */
​
        int USERNAME = 123456789;
        int PASSWORD = 987654321;
        
        // 2、创建Scanner对象
        Scanner in = new Scanner(System.in);
        System.out.println("请输入QQ号码:");
        int username = in.nextInt();
​
        System.out.println("请输入QQ密码,只能是数字:");
        int password = in.nextInt();
​
        // 7、比较用户名和密码
        if((username == USERNAME) && (password == PASSWORD)){
            System.out.println(username + ",欢迎你.");
        }else{
            System.out.println("账号或者密码错误...");
        }
    }
}

3.4 if...else if...

if(判断条件1){

满足条件1执行的代码

}else if(判断条件2){

满足条件2执行的代码

}else if(判断条件3){

满足条件3执行的代码

}。。。else{

以上条件都不成立执行此处的代码

}

整个if。。else if判断中只要有一个成立的条件,就执行里面的代码,代码执行结束后整个if判断就结束了

import java.util.Scanner;
class Demo07 {
    public static void main(String[] args) {
        /*
            键盘录入一个数字(1--7),输出对应日期需要上课的课程
            1、导入Scanner
            2、创建Scanner对象
            3、提示输入日期1--7
            4、获取日期
            5、使用if判断,输出这一天需要上的课程
        */
        
        Scanner in = new Scanner(System.in);
    
        System.out.println("请输入查询星期几的课程(1--7)");
        int day = in.nextInt();
​
        // 5、使用if判断,输出这一天需要上的课程
​
        if(day == 1){
            System.out.println("今天是星期一,需要上语文课.");
        } else if(day == 2){
            System.out.println("今天是星期二,需要上数学课.");
        } else if(day == 3){
            System.out.println("今天是星期三,需要上英语课.");
        } else if(day == 4){
            System.out.println("今天是星期四,需要上体育课.");
        } else if(day == 5){
            System.out.println("今天是星期五,需要上语文课.");
        } else if((day == 6) || (day == 7)){
            System.out.println("今天是星期" + day + ",需要休息.");
        } else{
            System.out.println("您查询的课程不存在...");
        }
        // 键盘录入一个月份,判断是什么季节
        // 键盘录入一个年份,判断是不是闰年
    }
}

输入月份显示季节

import java.util.Scanner;
class Demo08 {
    public static void main(String[] args) {
        /*
            键盘录入一个数字(1--7),输出对应日期需要上课的课程
            1、导入Scanner
            2、创建Scanner对象
            3、提示输入月份
            4、获取月份
            5、使用if判断,输出这个月份所在的季节
        */
        
        Scanner in = new Scanner(System.in);
    
        System.out.println("请输入查询的月份(1--12)");
        int month = in.nextInt();
        // 键盘录入一个月份,判断是什么季节
​
        // 使用if判断,输出这个月份所在的季节
        if((month==3) || (month==4) || (month==5)){
            System.out.println("春天到了,万物复苏,又到了万物生长的季节...");
        } else if((month==6) || (month==7) || (month==8)){
            System.out.println("夏天到了,天气酷热,小龙虾哈啤酒是非常不错的消暑产品...");
        } else if(month>=9 && month<=11){
            System.out.println("秋天到了,秋高气爽,到了收货的季节...");
        } else if((month==12) || (month==1) || (month==2)){
            System.out.println("冬天到了,天气寒冷,杭州的冬天会给你留下深刻的印象...");
        } else{
            System.out.println("月份不存在...");
        }
    }
}

3.5 if嵌套

if里面再书写if分支语句

if(条件1){

if(条件2){

执行满足条件1和条件2 的代码

}else{

执行满足条件1但不满足条件2的代码

}

}else{

执行不满足条件1的代码

}

3.5.1 乘车案例

import java.util.Scanner;
class Demo10 {
    public static void main(String[] args) {
        /*
            模拟乘坐火车检票安检的过程
        */
​
        Scanner in = new Scanner(System.in);
​
        System.out.println("请出示你的车票(1=有票,0=无票):");
        int ticket = in.nextInt();
​
        // 判断有没有车票,如果有就可以去安检
        if(ticket>=1){
            // 提示输入安检情况
            System.out.println("有没有携带违禁物品(true=有,false=无):");
            boolean isDanger = in.nextBoolean();
            // 判断安全情况
            if(isDanger){
                System.out.println("请跟我走一趟....");
            }else{
                System.out.println("安检通过,请排队候车...");
            }
​
        }else{
            // 无票,提示去买票
            System.out.println("请先去购买车票...");
        }
    }
}

3.5.2 压岁钱案例

import java.util.Scanner;
class Demo11 {
	public static void main(String[] args) {
		/*
			根据压岁钱判断你要干啥
		*/
		Scanner in = new Scanner(System.in);

		System.out.println("请问你是否有压岁钱:");
		boolean hasLuckyMoney = in.nextBoolean();

		if(hasLuckyMoney){
			// 有压岁钱的时候
			System.out.println("请输入收到压岁钱的金额:");
			int luckyMoney = in.nextInt();

			// 0--500去吃大餐,500-1000升级一下电脑配置,1000-10000买个自行车,大于10000就捐了
			if((luckyMoney>0) && (luckyMoney<=500)){
				System.out.println("收到了压岁钱很开心,准备请全村人吃大餐...");
			} else if((luckyMoney>500) && (luckyMoney<=1000)){
				System.out.println("收到了压岁钱很开心,升级一下电脑的配置...");
			} else if((luckyMoney>1000) && (luckyMoney<=10000)){
				System.out.println("收到了压岁钱很开心,买个自行车骑行去光明顶...");
			} else if(luckyMoney>10000){
				System.out.println("收到了压岁钱很开心,捐给更需要这个金钱的人...");
			}

		}else{
			// 没有压岁钱
			System.out.println("没有收到压岁钱说明你长大啦,可以给别人压岁钱<_>");
		}	
	}
}

四、分支语句之-switch(掌握)

  • 转换、开关的意思

  • 逐个进行匹配

switch(key){

case value1:

满足key==value1时候执行的代码

break;===终止switch的执行

case value2:

满足key==value2时候执行的代码

break;===终止switch的执行

。。。 。。。

default:

上面所有匹配都没成功时候执行的代码

break;===终止switch的执行

}

 

4.1 switch基本使用

import java.util.Scanner;
class Demo13 {
	public static void main(String[] args) {
		/*
			根据星期几输出上课的内容
			1、导入Scanner
			2、创建Scanner对象
			3、提示输出星期几day
			4、获取输入的值
			5、使用switch判断输出课程内容

		*/
	
		Scanner in = new Scanner(System.in);
		System.out.println("请输入今天是星期几(1--7):");
		int day = in.nextInt();

		// 5、使用switch判断输出课程内容
		switch(day){
			case 1:
				System.out.println("今天是星期一,需要上语文课.");
				break;

			case 2:
				System.out.println("今天是星期二,需要上语文课.");
				break;

			case 3:
				System.out.println("今天是星期三,需要上语文课.");
				break;

			case 4:
				System.out.println("今天是星期四,需要上语文课.");
				break;

			case 5:
				System.out.println("今天是星期五,需要上语文课.");
				break;

			case 6:
				System.out.println("今天是星期六,需要上语文课.");
				break;

			case 7:
				System.out.println("今天是星期日,需要上语文课.");
				break;

			default:
				System.out.println("这个时间不存在...");
				break;
		}
	}
}

4.2 case穿透

import java.util.Scanner;
class Demo14 {
	public static void main(String[] args) {
		/*
			根据星期几输出上课的内容
			1、导入Scanner
			2、创建Scanner对象
			3、提示输入月份
			4、获取输入的值
			5、使用switch判断输出季节内容

		*/
	
		Scanner in = new Scanner(System.in);
		System.out.println("请输入月份(1--12):");
		int month = in.nextInt();

		// 5、使用switch判断输出季节内容
		switch(month){
			case 1:
				System.out.println("一月份是冬季,很冷");
			
			case 2:
				System.out.println("二月份是冬季,很冷");

			case 3:
				System.out.println("三月份是春季,很冷");

			case 4:
				System.out.println("四月份是春季,很冷");

			case 5:
				System.out.println("五月份是春季,很冷");

			case 6:
				System.out.println("六月份是夏季,很热");

			case 7:
				System.out.println("七月份是夏季,很热");

			case 8:
				System.out.println("八月份是夏季,很热");
		
			case 9:
				System.out.println("九月份是秋季,很热");

			case 10:
				System.out.println("十月份是秋季,很热");

			case 11:
				System.out.println("十一月份是秋季,很热");

			case 12:
				System.out.println("十二月份是冬季,很热");

			default:
				System.out.println("月份不存在");

		}
	}
}

4.3 case穿透案例

import java.util.Scanner;
class Demo14 {
	public static void main(String[] args) {
		/*
			根据星期几输出上课的内容
			1、导入Scanner
			2、创建Scanner对象
			3、提示输入月份
			4、获取输入的值
			5、使用switch判断输出季节内容

		*/
	
		Scanner in = new Scanner(System.in);
		System.out.println("请输入月份(1--12):");
		int month = in.nextInt();

		// 5、使用switch判断输出季节内容
		switch(month){
			case 1:
			case 2:
			case 12:
				System.out.println(month + "月份是冬季,很冷");
				break;

			case 3:
			case 4:
			case 5:
				System.out.println(month + "月份是春季,很冷");
				break;

			case 6:
			case 7:
			case 8:
				System.out.println(month + "月份是夏季,很热");
				break;

			case 9:
			case 10:
			case 11:
				System.out.println(month + "月份是秋季,很热");
				break;

			default:
				System.out.println("月份不存在");
				break;
		}
	}
}

五、比较if和switch(掌握)

成绩案例

import java.util.Scanner;
class Demo15 {
	public static void main(String[] args) {
		/*
			0 --59	不及格
			60--69	及格
			70--79	一般
			80--89	良好
			90--100	优秀
		*/

		Scanner in = new Scanner(System.in);
		System.out.println("请输入考试成绩(0--100):");
		int score = in.nextInt();
		
		if((score<0) || (score>100)){
			System.out.println("错误的分数");
		}else{
			// 合法的分数
			if(score >= 90){
				System.out.println("成绩优秀");
			} else if(score >= 80){
				System.out.println("成绩良好");
			} else if(score >= 70){
				System.out.println("成绩一般");
			} else if(score >= 60){
				System.out.println("刚刚及格");
			} else{
				System.out.println("不及格,体验一下男女混合双打...");
			}
		}
	}
}

 

  • if中的判断条件可以使等于某个具体的值,也可以是一个范围

    • month==3

    • score>=90

  • switch中case后面的值只能是byte,short、int、char、String范围内的值

    • 无法使用范围进行操作,数字范围过大,或者内容不确定且情况复杂的时候不能使用switch

    • 数值较少,内容固定的情况下可以使用switch

    • 常量的判定推荐使用switch

       

六、局部变量(掌握)

  • 定义在方法中的变量

  • 使用前必须先赋值---没有默认的值

  • 作用范围只在当前方法里面

  • 在同一个作用域中变量名字不能重复

  • 生命周期是从创建到方法结束

class Demo16 {
	
	public static void main(String[] args) {
		/*
			定义位置在方法中
			使用前必须先赋值---没有默认的值
			作用范围只在当前方法里面
			在同一个作用域中变量名字不能重复
			生命周期是从创建到方法结束
		*/
		int age = 20;
		System.out.println("age=" + age);

		// int age = 22;
		// show();
		age = 33;
	}

	public static void show() {

		System.out.println("age=" + age);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值