JavaSE基础之选择结构&循环结构(四)

文章目录

(一)流程概述与顺序结构
(二)选择结构:单if语句
(三)选择结构:标准if-else语句
(四)选择结构:扩展if-else语句
(五)练习:用if语句实现考试成绩划分
(六)练习:用if语句替换三元运算符
(七)选择结构:标准的switch语句
(八)选择结构:穿透的switch语句
(九)循环结构:循环概述与基本组成部分
(十)循环结构:for循环
(十一)循环结构:while循环
(十二)循环结构:do-while循环
(十三)练习:用循环求出1-100之间的偶数的数量
(十四)三种循环的区别
(十五)循环控制:break语句
(十六)循环控制:continue语句
(十七)死循环
(十八)循环嵌套

(一)流程概述与顺序结构

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

// 顺序结构
public class Demo01Sequence {
	public static void main(String[] args) {
		System.out.println("今天天气不错");
		System.out.println("挺风和日丽的");
		System.out.println("我们下午没课");
		System.out.println("这的确挺爽的");
	}
}

在这里插入图片描述

(二)选择结构:单if语句

// 单if语句
public class Demo02If {
	public static void main(String[] args) {
		System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
		int age = 19;
		if (age >= 18) {
			System.out.println("进入网吧,开始high!");
			System.out.println("遇到了一群猪队友,开始骂街。");
			System.out.println("感觉不爽,结账走人。");
		}
		System.out.println("回家吃饭");
	}
}

在这里插入图片描述

(三)选择结构:标准if-else语句

// 标准的if-else语句
public class Demo03IfElse {
	public static void main(String[] args) {
		int num = 666;
		
		if (num % 2 == 0) { // 如果除以2能够余数为0,说明是偶数
			System.out.println("偶数");
		} else {
			System.out.println("奇数");
		}
	}
}

在这里插入图片描述

(四)选择结构:扩展if-else语句

// x和y的关系满足如下:
// 如果x >= 3,那么y = 2x + 1;
// 如果-1 < x < 3,那么y = 2x;
// 如果x <= -1,那么y = 2x – 1;
public class test {

    public static void main(String[] args) {
        int x = -10;
        int y;
        if (x >= 3) {
            y = 2 * x + 1;
        } else if (x > -1) { //走到这里的时候,x已经小于3了
            y = 2 * x;
        } else {             //前面所有情况都不满足,才执行这个,也就是x<3并且x<-1,也就是x<-1
            y = 2 * x - 1;
        }
        System.out.println("结果是:" + y);
    }

}

在这里插入图片描述

(五)练习:用if语句实现考试成绩划分

public class Demo05IfElsePractise {
	public static void main(String[] args) {
		int score = 120;
		if (score >= 90 && score <= 100) {
			System.out.println("优秀");
		} else if (score >= 80 && score < 90) {
			System.out.println("好");
		} else if (score >= 70 && score < 80) {
			System.out.println("良");
		} else if (score >= 60 && score < 70) {
			System.out.println("及格");
		} else if (score >= 0 && score < 60) {
			System.out.println("不及格");
		} else { // 单独处理边界之外的不合理情况
			System.out.println("数据错误");
		}
	}
}

注意:这种情况下,使用扩展if-else语句效率要比单if语句效率高
因为使用扩展if-else语句只要中了其中一条,下面的就都不执行了,而单if语句是无论如何都要全部走一遍的

(六)练习:用if语句替换三元运算符

// 题目:使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值
public class Demo06Max {
	public static void main(String[] args) {
		int a = 105;
		int b = 20;
		
		// 首先使用三元运算符
		// int max = a > b ? a : b;
		
		// 使用今天的if语句
		int max;
		if (a > b) {
			max = a;
		} else {
			max = b;
		}
		
		System.out.println("最大值:" + max);
	}
}

(七)选择结构:标准的switch语句

public class Demo07Switch {
	public static void main(String[] args) {
		int num = 10;
		
		switch (num) {
			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; // 最后一个break语句可以省略,但是强烈推荐不要省略
		}
	}
}

在这里插入图片描述

(八)选择结构:穿透的switch语句

switch语句使用的注意事项:

  1. 多个case后面的数值不可以重复。

  2. switch后面小括号当中只能是下列数据类型:
    基本数据类型:byte/short/char/int
    引用数据类型:String字符串、enum枚举

  3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
    “匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”

public class Demo08SwitchNotice {
	public static void main(String[] args) {
		int num = 2;
		switch (num) {
			case 1:
				System.out.println("你好");
				break;
			case 2:
				System.out.println("我好");
				// break;
			case 3:
				System.out.println("大家好");
				break;
			default:
				System.out.println("他好,我也好。");
				break;
		} 
	}
}

(九)循环结构:循环概述与基本组成部分

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

循环结构的基本组成部分,一般可以分成四部分:

  1. 初始化语句:在循环开始最初执行,而且只做唯一一次
  2. 条件判断:如果成立,则循环继续;如果不成立,则循环退出
  3. 循环体:重复要做的事情内容,若干行语句
  4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次

(十)循环结构:for循环

public class Demo09For {
	public static void main(String[] args) {
		for (int i = 1; i <= 100; i++) { //100遍
			System.out.println("我错啦!原谅我吧!" + i);
		}
		System.out.println("程序停止");
	}
}

在这里插入图片描述

(十一)循环结构:while循环

  • 标准格式

      while (条件判断) {
      	循环体;
      }
    
  • 扩展格式

      初始化语句;
      while (条件判断) {
      	循环体;
      	步进语句;
      }
    
public class Demo10While {
	public static void main(String[] args) {
		for (int i = 1; i <= 10; i++) {
			System.out.println("我错啦!" + i);
		}
		System.out.println("=================");
		
		int i = 1; // 1. 初始化语句
		while (i <= 10) { // 2. 条件判断
			System.out.println("我错啦!" + i); // 3. 循环体
			i++; // 4. 步进语句
		}
	}
}

在这里插入图片描述

(十二)循环结构:do-while循环

  • 标准格式

      do {
      	循环体;
      } while (条件判断);
    
  • 扩展格式

      初始化语句;
      do {
      	循环体;
      	步进语句;
      } while (条件判断);
    
public class Demo11DoWhile {
	public static void main(String[] args) {
		for (int i = 1; i <= 10; i++) {
			System.out.println("原谅你啦!起来吧!地上怪凉!" + i);
		}
		System.out.println("===============");
		
		int i = 1; // 1. 初始化语句
		do {
			System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体
			i++; // 4. 步进语句
		} while (i <= 10); // 2. 条件判断
	}
}

在这里插入图片描述

(十三)练习:用循环求出1-100之间的偶数的数量

题目:求出1-100之间的偶数和

思路:

  1. 既然范围已经确定了是1到100之间,那么我就从1、2、3……一直到100这么多数字一个一个进行检查
  2. 总共有100个数字,并非所有数字都能用
    必须要是偶数才能用,判断(if语句)偶数:num % 2 == 0
  3. 需要一个变量,用来进行累加操作
public class Demo12HundredSum {
	public static void main(String[] args) {
		int sum = 0; // 用来累加
		
		for (int i = 1; i <= 100; i++) {
			if (i % 2 == 0) { // 如果是偶数
				sum += i;
			}
		}
		System.out.println("结果是:" + sum);
	}
}

(十四)三种循环的区别

  1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次
    但是do-while循环会执行至少一次

  2. for循环的变量在小括号当中定义,只有循环内部才可以使用
    while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用

public class Demo13LoopDifference {
	public static void main(String[] args) {
		for (int i = 1; i < 0; i++) {
			System.out.println("Hello");
		}
		// System.out.println(i); // 这一行是错误写法!因为变量i定义在for循环小括号内,只有for循环自己才能用。
		System.out.println("================");
		
		int i = 1;
		do {
			System.out.println("World");
			i++;
		} while (i < 0);
		// 现在已经超出了do-while循环的范围,我们仍然可以使用变量i
		System.out.println(i); // 2
	}
}

(十五)循环控制:break语句

break关键字的用法有常见的两种:

  1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束
  2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环

关于循环的选择,有一个小建议:凡是次数确定的场景多用for循环;否则多用while循环

public class Demo14Break {
	public static void main(String[] args) {
		for (int i = 1; i <= 10; i++) {
			// 如果希望从第4次开始,后续全都不要了,就要打断循环
			if (i == 4) { // 如果当前是第4次
				break; // 那么就打断整个循环
			}
			System.out.println("Hello" + i);
		}
	}
}

(十六)循环控制:continue语句

continue关键字:一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环

public class Demo15Continue {
	public static void main(String[] args) {
		for (int i = 1; i <= 10; i++) {
			if (i == 4) { // 如果当前是第4层
				continue; // 那么跳过当前次循环,马上开始下一次(第5层)
			}
			System.out.println(i + "层到了。");
		}
	}
}

(十七)死循环

永远停不下来的循环,叫做死循环

死循环的标准格式:

while (true) {
	循环体
}
public class Demo16DeadLoop {
	public static void main(String[] args) {
		while (true) {
			System.out.println("I Love Java!");
		}
		
		// System.out.println("Hello");
	}
}

(十八)循环嵌套

public class Demo17LoopHourAndMinute {
	public static void main(String[] args) {
		for (int hour = 0; hour < 24; hour++) { // 外层控制小时

			for (int minute = 0; minute < 60; minute++) { // 内层控制小时之内的分钟
				System.out.println(hour + "点" + minute + "分");
			}

		}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zheng_zq666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值