Java学习_day04_流程控制

文章目录

分支结构

分子结构用来根据条件进行判断,从而产生不同的分支。根据分支个数的可以分为单分支和多分支两种。

if

常见的if分支结构有如下三种:

  • 单分支结构
    根据判断条件来决定是否执行某一段代码。
java 复制代码
if(条件表达式){
	分支执行语句;
}
  • 二分支结构
    根据判断条件来决定执行两段代码中哪一段代码。
java 复制代码
if(条件表达式){
	第一分支执行语句;
} else {
	第二分支执行语句;
}
  • 多分支结构
    根据多个判断条件来决定执行哪段代码。
java 复制代码
if(条件表达式1){
	第一分支执行语句;
} else if(条件表达式2) {
	第二分支执行语句;
} else {
	第三分支执行语句;
}

switch

根据一个变量或表达式的值来判断执行哪段代码。

java 复制代码
switch(变量或表达式) {
	case 值1:
		第一分支执行语句;
		break;
	case 值2:
		第二分支执行语句;
		break;
	default:
		第三分支执行语句;
		break;
}

注意点:

  1. 如果switch的值与某个case后面的常量值相匹配,那么就从这个case进入。
  2. 如果switch的值与所有case后面的常量值都不匹配,那么就从default进入。
  3. 如果某个分支执行时遇到break语句,那么就中断switch的执行
  4. 当遇到switch结构的结束标志}时就自动结束。
  5. switch结构可能从一个分支贯穿执行到下一个分支,不再判断相等,直到遇到出口为止
  6. case后只能是常量值,不能是变量或表达式
  7. switch后面的变量或表达式的数据类型可以是int(及其兼容类型),枚举型,String类型

对比

  • switch语句只支持常量值相等的分支判断,而if语句支持的更为灵活,任意的布尔表达式就可
  • switch语句通常比一系列嵌套if语句效率更高,逻辑更清晰
  • if语句建议用来判断区间和范围
  • switch建议用来判断固定值,且此时固定值的取值范围不大

循环结构

当需要重复执行一部分代码时需要使用循环结构。通常循环结构由初始条件,循环条件,循环体和迭代表达式四个部分组成。在不同的循环结构中,他们的摆放位置是不同的。

while

当满足循环条件时,执行循环体语句;然后执行迭代表达式,再进行循环条件判断,满足执行,不满足跳出循环。

java 复制代码
初始化语句;
while(循环条件){
	循环体语句;
	迭代表达式;
}

do while

执行一次循环体语句和迭代表达式;再判断循环条件,满足执行循环体,不满足跳出循环。

java 复制代码
初始化语句;
do {
	循环体语句;
	迭代表达式;
} while(循环条件);

注意点:while(循环条件)后的;不能忘!

for

for循环通常用在知道指定的循环次数情况下:

java 复制代码
for(初始化语句;循环条件;迭代表达式){
	循环体语句;
}

注意点:

  • 初始化语句可省略,这种情况下,初始化语句就写在了for循环结构的前面
  • 初始化语句可以写多个,以逗号分隔
  • 迭代表达式可省略,这种情况下,迭代表达式就写在了循环体语句中
  • 迭代表达式可以写多个,以逗号分隔

跳出语句

break

break语句用于跳出当前循环,通常用在循环结构和switch结构中。当存在多层循环时,需要理解break为跳出当前层循环。

当需要跳出其他层循环时,需要使用标签。

java 复制代码
out: for(int i = 0;i<10;i++){
	in: for(int j = 0; j <= i; j++) {
		System.out.println(i);
		break out;
	}
}

continue

continue语句用于继续本次循环,通常用在循环结构中。表示本次循环运行到continue处就停止,开始执行下一次循环。

相关推荐
guodingdingh2 小时前
软件开发工作问题总结0718
java·开发语言·数据库
咖啡八杯4 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育4 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵4 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔6 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影6 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao121317 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔7 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
CRMEB系统商城8 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience9 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu