Java分支结构

什么是分支结构

  • 任何复杂的程序逻辑都可以通过顺序、分支、循环,三种基本的程序结构实现
    顺序、分支、循环
  • 程序可以在运行过程中,根据不同的条件运行不同的语句。

Java分支结构语句:

if 语句:在这里插入图片描述
  • 当条件满足时,执行语句块,然后执行if语句下面的语句;否则跳过语句块,直接执行if语句下面的语句。
if 语句案例演示:
public static void main(String[] args) {
	int a = 10;
	int b = 1;
	if (a < b) {
		System.err.println("小于");
	}
	System.err.println("程序执行完成");
}
说明:程序结束,因为不满足条件。
  • if语句块中只有一条语句时,{} 可以省略(不建议),但当代码发生更新时容易产生错误,因此就算if里面只有一句,也要加上 {}

if-else 语句:在这里插入图片描述
  • 当条件满足时,执行语句1,然后执行if-else语句下面的代码;否则执行语句2,再执行if-else语句下面的代码。
if-else 语句案例演示:
public static void main(String[] args) {
	int a = 10;
	int b = 1;
	if (a > b) {
		System.err.println("大于");
	} else {
		System.err.println("小于");
	}
}
输出结果:大于
因为条件满足,执行语句1里面的语句

  • else-if结构就是if-else嵌套的简便写法:
else-if 语句案例演示:
public static void main(String[] args) {
	double fraction = 87.9;
	if (fraction >= 95) {
		// 输出1
	} else if (fraction >= 75) {
		// 输出2
	} else {
		// 输出3
	}
}

switch-case 语句:
  • switch-case 语句执行逻辑:
    • switch-case 语句是一种特殊的分支结构,可以根据一个整数表达式的不同取值,从不同的程序入口开始执行。
  • switch-case 和 break 联合使用:
    • 通常case1、case2、… N,每个case对应的不同的操作,可以和break语句配合使用,执行完相应的语句后,退出switch块,不会继续执行下面的语句。
switch-case 语句案例演示:
public static void main(String[] args) {
	// 模仿10086电话
	int num = 1;
	switch (num) {
	case 1:
		System.err.println("查话费");
		break;
	case 2:
		System.err.println("查流量");
		break;
	case 3:
		System.err.println("办理业务");
		break;
	default:
		System.err.println("人工服务");
	}
}
输出结果:查话费
因为满足case1里面的条件,跳出switch,不会再继续执行下面的代码
switch-case:
  • 优点:效率高、结构清晰
  • 缺点:整数、相等
  • 注:从JDK7.0开始,switch-case支持字符串表达式。

循环结构:

什么是循环结构:
  • 循环是程序设计语言中反复执行某写代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复执行。说白了就是反复执行一段相同或相似的代码
  • 循环三要素:
    • 循环变量的初始化
    • 循环的条件(以循环变量为基础)
    • 循环变量的改变(向着循环的结束变)

while语句的执行逻辑:
  • 计算boolean表达式的值
  • 当值为true则执行语句块,语句执行完以后再次判断boolean值,如果值还是为true则继续执行,如此循环,直到boolean的值为false时退出while循环。
while语句案例演示:
public static void main(String[] args) {
	int num = 1; 
	while (num <= 9) {
		System.out.println(num + "*9=" + num * 9);
		num++; 
	}
	System.out.println("over");
}
说明:
	先判断条件,在执行,条件不满足的时候,跳出循环。
  • 注:一般情况下,循环操作中会存在循环的条件不满足的可能性,否则将成为死循环
  • 使用break语句跳出循环:
while语句使用break案例演示:
public static void main(String[] args) {
	int i = 0;
	while (i < 10) {
		if (i == 5) {
			break;
		}
		System.err.println("i的值为:" + i);
		i++;
	}
}
说明:
	i的初始值为0,代码进入while块中判断,满足条件,进入if判断,条件不满足 i++,
	当i通过自加到5的时候,满足if块的条件,用break跳出循环。

do-while语句:
  • 先计算boolean表达式,如果为true,再次执行语句块,如此循环,直到为false为止。
do-while语句案例演示:
public static void main(String[] args) {
	// 模拟用户登录
	Scanner scan = new Scanner(System.in);
	int pwd = 123; // 初始密码
	int i = 0;
	System.err.println("初始密码:" + pwd);
	int guess; // 用户输入的密码
	do {
		System.out.println("请输入密码!");
		System.out.println("输入密码共有3次机会!"); // 告诉用户,输出错误密码的次数
		guess = scan.nextInt();
		if (i == 2) { // 计算错误密码次数
			break; // 跳出循环
		}
		i++;
		System.err.println("密码输入错误次数为:" + i);
	} while (guess != pwd);
	if (guess == pwd) {
		System.out.println("密码正确");
	} else {
		System.out.println("密码错误");
	}
}
说明:
	先执行do语句块里的代码,在判断条件,条件为true时,再次执行语句块,等条件为false时,跳出循环。
  • while和do-while的区别
    • while:先判断后执行,有可能一次都不执行
    • do-while:先执行后判断,至少会执行一次

for 语句:
  • for语句的执行逻辑:
for (int j = 0; j < args.length; j++) {
	String string = args[j];
}
说明:
for (表达式1;表达式2;表达式3) {
	语句块(循环体)
}
for 语句案例演示:
for (int i = 0; i < 3; i++) {
	System.err.println("学习Java");
}
System.err.println("条件不满足,程序结束");
说明:
	程序第一轮执行顺序:i=0,0<3(条件满足),i++ 输出循环体语句
	程序第二轮执行顺序:i=1,1<3(条件满足),i++ 输出循环体语句
	程序第三轮执行顺序:i=2,2<3(条件满足),i++ 输出循环体语句
	程序第四轮执行顺序:i=3,3<3(条件不满足)程序结束
死循环案例演示:
for (;;) {
	System.err.println("学习Java");
}
说明:
	当所有表达式为空时,进入死循环状态
  • break可用于循环语句或者switch语句中,可以使程序终止循环而执行循环后面的语句,常常与条件语句一起使用。
  • continue 只能用于循环中,作用为跳过循环体中剩余语句,而执行下一次循环
for循环中使用continue案例演示:
public static void main(String[] args) {
	int num = 0;
	for (int i = 1; i <= 100; i++) {
		if (i % 10 == 3) {
			continue;
		}
		num += i;
	}
}
说明:
	当if条件满足时continue跳过循环体中剩余的语句
	程序执行:
		num = 0
		i = 1 num = 0 + i(1)
		i = 2 num = 1 + i(2)
		i = 3 满足条件,所以跳出剩余循环体中的语句。
		以此类推,当i 的值为101的时循环结束。

循环问题:
  • 需要多次重复执行一个或多个任务的问题考虑使用循环来解决,一般情况for循环使用最多。
  • 循环问题定义——循环:
    • 如果业务转换为这样时,优先选择while语句来实现。
  • 循环问题定义——直到循环:
    • 如果业务转换为直到这样时,优先选择do-while语句来实现。
  • 循环问题定义——固定次数循环
    • 如果业务中获取一个确切的循环次数,考虑for循环。

公众号二维码
讲解代码地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值