Java:分支语句

Java:分支语句

第一节:程序基本结构
  1. 顺序结构
  2. 选择结构
  3. 循环结构
1.1 顺序结构
程序从上到下一行一行的执行代码,没有判断和中转。

在这里插入图片描述

1.2 选择结构
有选择性的执行或者跳过指定代码

在这里插入图片描述

1.3 循环结构

​ 重复执行一段代码,直到条件不成立

在这里插入图片描述

Java的选择结构使用选择语句来实现:

​ 1 if语句

​ 2 switch语句

第二节:if语句

if语句有四种使用形式:

  • if(条件){…}
  • if(条件){…}else{…}
  • if(条件){…}else if(条件){…}else{…}
  • if(条件){ if(条件){…} } else {…}
2.1 简单if语句
if (/* 条件判断 true or false */) {
    // 条件结果为true执行大括号以内的语句
}
/*
执行流程:
	代码运行到if分支结构,首先判断if之后的条件是否为true,如果为true,执行大括号里面的语句,如果为false直接执行大括号之外的语句,
*/

在这里插入图片描述

示例1:java成绩如果大于60,奖励一颗糖

	//简单的if语句:
	//成绩如果大于60   给奖励
	int score = 10;
	if(score>60){
		System.out.println("给颗糖");
	}	

示例2:Java成绩大于98分,而且Html成绩大于80分,老师奖励他;或者Java成绩等于100分,Html成绩大于70分,老师也可以奖励他。

if((score1 >98 && score2 > 80 ) || ( score1 == 100 && score2 > 70 )){
    //奖励
}
2.2 if-else语句
if (/* 条件判断 true or false */) {
    // true语句体
} else {
    // false语句体
}
/*
执行流程:
	代码运行到if-else结构时,首先判断if之后的条件是否为true,如果为true,执行if之后大括号内容,true语句体,如果为false,执行else大括号内容,false语句体
*/

在这里插入图片描述

示例1:如果是男生就永远18岁,否则永远16岁。

		// 如果是男生   就永远18岁
		// 如果是 女生  永远16岁		
		char c = '女';
		if(c == '男'){// boolean 结果是true  执行if中   否则执行else中的
			System.out.println("永远18岁");
		}else{
			System.out.println("永远16岁");
		}

上机练习1:买彩票

如果体彩中了500万,我买车、买房、非洲旅游

如果没中,继续买。

public static void main(String[] args){
		//1创建input对象
		Scanner input=new Scanner(System.in);
		//2提示
		System.out.println("中500万吗?Y/N");
		String answer=input.next();
		//3判断
		if(answer.equals("y")){  //字符串的判断使用equals方法 
			System.out.println("买房、买车、欧洲旅游...");	
		}else{
			System.out.println("继续买....");
		}  	
	}

注意:字符串的判断使用equals方法

上机练习2:输入四位数字的会员号的百位数字等于产生的随机数字即为幸运会员,提示恭喜您中奖了,否则没中奖。

提示: int random=(int)(Math.random()*10); //随机数

注意:Math.random();产生0-1之间的一个数字,含0不含1

public static void main(String[] args){
		//创建Input对象
		Scanner input=new Scanner(System.in);
		//提示
		System.out.println("请输入四位的会员号:");
		int member=input.nextInt();

		//百位
		int bai=member/100%10;
		int ran=(int)(Math.random()*10);   //Math.random();产生0-1之间的一个数字,含0不含1 
		if(bai==ran){
			System.out.println("中奖了....旅游去吧");
		}else{
			System.out.println("好好干活...");
		}
	}
2.3 多重if语句

if … else if … else 语句用于对多个条件进行判断,进行多种不同的处理

if (判断条件1) {
    执行语句1} else if (判断条件2) {
    执行语句2}
......
else if (判断语句n) {
    执行语句n;
} else {
    执行语句n+1;
}

示例1:如果成绩大于90并且是男生就送个女朋友,成绩大于90并且是女生送个男朋友,否则…

	char c = '女';
	int score = 10;	
	if(score>90 && c=='男'){
			System.out.println("给送个女朋友");	
	}else if(score>90 && c=='女'){
			System.out.println("给送个男朋友");
	}else{
			System.out.println("啥都没有,自己买");
	}
2.4 嵌套if语句
if(条件1) {

      if(条件2) {

              代码块1

      } else {

              代码块2

      }

} else {

      代码块3

}

示例:如果成绩大于90 如果是男生 送个女朋友, 如果是女生送个男朋友

	// 如果成绩大于90   如果是男生    如果是女生
		int score = 10;
		if(score>90){
			if(c=='男'){
				System.out.println("给送个女朋友");
			}else{
				System.out.println("给送个男朋友");
			}
		}
2.5 特殊的if语句(不推荐使用)
		//  特殊形式
		// 必须要求   if 或者 else 语句中只能有一条语句
			if(score>60)
				System.out.println("好学生");
			else
				System.out.println("给送个女朋友");	

上机练习1:输入四个季节:如果春天,输出“春暖花开”,如果是夏天,输出“夏日炎炎”,如果是秋天,则输出"秋高气爽",如果是冬天,则输出"安静祥和"。

// 1
import java.util.Scanner;

class  Demo8
{
	public static void main(String[] args) 
	{

		//  == 判断基本数据类型内容是否相等
		// 引用数据类型  ==  判断内存地址 
		// 判断内容  String 类型 判断内容 equals

		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		
	//	boolean falg= str.equals("春天");
      if(str.equals("春天")){
   			System.out.println("春暖花开");
   		}else if(str.equals("夏天") ){
   			System.out.println("夏日炎炎");
   		}else if(str.equals("秋天")){
   			System.out.println("秋高气爽");
   		}else if(str.equals("冬天")){
   			System.out.println("安静祥和");	
   		}
   	}
   }
第三节: switch语句
3.1 switch语法规则
  1. 表达式expr的值必须是下述几种类型之一:
    ​ byte、short、int、char、enum(枚举);java7之后可以是String。
  2. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
  3. 所有case子句中的值应是不同的,否则会编译出错;
  4. default子句是可选的(不是必须的)
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去
3.2语法格式
   switch(表达式expr){//int,byte,short,char,enum,String
   		case const1:
   			statement1;
   			break;
   		case const2:
   			statement2;
   			break;
   			… …
   		case constN:
  			statementN;
   			break;
   		default:
   			statement_dafault;
   			break;
   	} 
3.3 执行顺序:
 1 所有的 case 都不满足需求的时候  执行default中的内容
 2 break 帮助跳出switch 语句的, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止
3.4 练习:

练习一: 简单实现switch语句

	   int i = 1;
	   switch(i){
   			case 1:
   				System.out.println("Hello World!");
   				break;
   			case 2:
   				System.out.println("Hello World!2");
   			case 3:
   				System.out.println("Hello World3");
   				break;
   			default:
   				System.out.println("Haaaa");
   				break;
   		}

练习二: 判断春夏秋冬

Scanner sc = new Scanner(System.in);
		String str = sc.next();
		switch(str){
			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;
		}

练习三: 需求: 利用switch实现一个计算器操作

		Scanner  sc = new Scanner(System.in);
   		System.out.println("请输入第一个操作数:");
   		int a = sc.nextInt();
   		System.out.println("请输入运算符");
   		String str = sc.next();
   		System.out.println("请输入第二个操作:");
   		int	b = sc.nextInt();
   		switch(str){
   			case "+":
   				System.out.println(a+"+"+b+"="+(a+b));
   				break;
   			case "-":
   				System.out.println(a+"-"+b+"="+(a-b));
   				break;
   			case "*":
   				System.out.println(a+""+b+"="+(ab));
   				break;
   			case "/":
   				System.out.println(a+"/"+b+"="+(a/b));
   				break;
   			case "%":
   				System.out.println(a+"%"+b+"="+(a%b));
   				break;
   			}
3.5 特殊用法 :case穿透

case穿透: 产生这种现象的原因:由于某个case语句中缺少或者漏写break语句所导致的结果.

// 需求:  打印输出指定的月份的天数

   		Scanner sc = new Scanner(System.in);

   		int month = sc.nextInt();

   		switch(month){

   			case 1:	

   			case 3:				

   			case 5:				

   			case 7:				

   			case 8:				

   			case 10:				

   			case 12:

   				System.out.println("31天");

   				break;

   			case 2:

   				System.out.println("28天");

   				break;

   			case 4:				

   			case 6:				

   			case 9:				

   			case 11:

   				System.out.println("30天");

   				break;		

   		}

   		System.out.println("Hello World!");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值