java的if与switch使用

一、if分支结构

生活中的执行结构:

  • 顺序结构: 起床、刷牙、坐车、上学…
  • 选择结构: 上学选择交通工具–坐公交,做地铁,打车…
  • 循环结构: 重复性的每天敲代码…

程序中的执行结构:

  • 顺序结构: 从main方法出发,从头往下依次执行…
  • 选择结构: if,switch
  • 循环结构: while,do while,for
1. if单分支

语法结构:

if(关系表达式){
	语句;
}

执行流程: 关系表达式成立,则执行括号中的语句;不成立则不执行
案例: 如果张三同学考试及格,则请全班吃饭

import java.util.Scanner;   //1.导包  导入控制台的类
public class If1{
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in); //实例化对象
		System.out.print("请输入考试成绩:");
		int score = sc.nextInt();
		if(score>=60){
			System.out.println("考试及格,请全班吃饭");
		}
	}
}
2. if双分支

if双分支结构: if,else

if(关系表达式){
	语句1;
}else{
	语句2;
}

执行流程: 如果关系表达式成立,则执行语句1;否则,执行语句2

案例: 如果张三考试及格,则请全班吃饭;否则,全班安慰他

System.out.print("请输入考试成绩:");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>=60){
    System.out.println("考试及格,请全班吃饭");
}else{
    System.out.println("很遗憾,不及格;以后就习惯了!");
}
3. if多分支

if多分支结构: 多选一

语法:

if(关系表达式1){
				语句1}else if(关系表达式2){
				语句2}...
			else if(关系表达式n){
				语句n;
			}else{
				最后的语句;
			}

执行流程: 如果关系表达式1成立则执行语句1;否则,如果关系表达式n成立则执行n;否则,执行最后的

案例: 根据钱包厚度决定请吃饭豪华度

		    1万以上---海鲜大餐
			1千以上---大排档
			1百以上---麻辣烫
			10元以上--快餐
			否则------不吃
System.out.print("请输入你的钱包金额:");
Scanner sc = new Scanner(System.in);
int money = sc.nextInt();
/*
		if(money>=10000){
			System.out.println("吃海鲜大餐");
		}else if(money>=1000&&money<10000){
			System.out.println("吃大排档");
		}else if(money>=100&&money<1000){
			System.out.println("吃麻辣烫");
		}else if(money>=10&&money<100){
			System.out.println("吃快餐");
		}else{ //上面的条件都不成立,则执行else里的代码
			System.out.println("没钱吃饭,先饿一顿!");
		}*/

//优化:
if(money>=10000){
    System.out.println("吃海鲜大餐");
}else if(money>=1000){ //隐含了money<10000
    System.out.println("吃大排档");
}else if(money>=100){ //隐含了money<1000
    System.out.println("吃麻辣烫");
}else if(money>=10){ //隐含了money<100
    System.out.println("吃快餐");
}else{ //上面的条件都不成立,则执行else里的代码
    System.out.println("没钱吃饭,先饿一顿!");
}

特点整理:

  • if往往用于判断个范围; if判断要么从小到大,要么从大到小
  • if多分支往往后面需要加else更完整
4. if嵌套

if嵌套: if语句中,又包含了if结构

if嵌套特点: 先执行外层的if,再执行内层

案例: 输入学生的成绩,打印出对应的等级

		   90-100   A
		   80~89    B
		   70~79    C
		   60~69    D
		   60以下   E
System.out.print("请输入百分制成绩:");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>=0&&score<=100){
    if(score>=90){
        System.out.println("A");
    }else if(score>=80){
        System.out.println("B");
    }else if(score>=70){
        System.out.println("C");
    }else if(score>=60){
        System.out.println("D");
    }else{
        System.out.println("E");
    }
}else{
    System.out.println("输入有误~请重新输入!");
}

二、switch分支

switch分支与if分支结构类似,都是用于选择结构;只是switch主要用于等值判断的匹配,而if主要用于判断一个范围

1. switch使用

语法:

	   swtich(变量){
			   case1:
			       语句1break//跳出switch
			   case2:
			       语句2break;  
			   ...
			   case 值n:
			       语句n;
				   break;
			    default:  //前面都不匹配,则执行default  类似if多分支的最后一个else
				   退出语句提示;
				   break}

执行流程: 变量匹配case值,匹配上了,则执行里面的语句并退出;如果case都不匹配,则执行最后的default

案例: 请打印一周的伙食

System.out.print("请输入一周的伙食(1~5):");
Scanner sc = new Scanner(System.in);
int week = sc.nextInt();
switch(week){
    case 1:
        System.out.println("鲍鱼");
        break; //如果没有break,则匹配上后,则会依次往下执行,直到遇到break
    case 2:
        System.out.println("猪脚饭");
        break;
    case 3:
        System.out.println("泡面");
        break;
    case 4:
    case 5:  //特殊场景
        System.out.println("馒头");
        break;
    default:
        System.out.println("输入有误~");
        break;
}
2. switch匹配字符串

注意: 在JDK1.7之后,switch匹配的变量可以是byte,short,int,char,String等

案例: 请输入四大美女的名字,打印对应的名号

System.out.print("请输入四大美女姓名:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
switch(name){
    case "王昭君":
        System.out.println("落雁");
        break;
    case "貂蝉":
        System.out.println("闭月");
        break;
    case "杨玉环":
        System.out.println("羞花");
        break;
    case "西施":
        System.out.println("沉鱼");
        break;
    default:
        System.out.println("你的输入有误~");
        break;
}

小结: if和switch都是选择结构,但他们的应用场景不同:

往往if会更常用,if倾向于用在判断范围;switch倾向于用在等值匹配

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值