if...else和switch...case

一、位运算

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的执行

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Id0X6gld-1614649710330)(switch语法.png)]

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穿透(直到遇到break才会停止)
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、付费专栏及课程。

余额充值