Java控制语句详解
Java中控制语句只有七种,分别是if,switch,for,while,do-while,break和continue。
目录
一、选择结构
1.if语句
2.switch语句
二、循环结构
1.for循环
2.while循环
3.do-while循环
三、选择语句
1.break语句
2.continue语句
3.continue和break的区别
一、选择结构
1.if语句
又称为分支语句,常用于单,双分支判断【也可用于多分支判断】
if语句的四种语法格式:
第一种:单分支if(布尔表达式){Java语句....//如果布尔表达式为真,那么执行这里面的Java语句,否则不执行
}********************************************************************************第二种:双分支if(布尔表达式){Java语句....
//如果布尔表达式为真,那么执行这里面的Java语句
}
else{Java语句....
//如果布尔表达式为假,那么执行这里面的Java语句
}*******************************************************************************第三种:多分支if(布尔表达式1){Java语句....//如果布尔表达式1为真,执行这里面的Java语句
}else if(布尔表达式2){Java语句....//如果布尔表达式2为真,执行这里面的Java语句
}else if(布尔表达式3){Java语句....//如果布尔表达式3为真,执行这里面的Java语句
}
.....*********************************************************************************第四种:多分支if(布尔表达式1){Java语句....//如果布尔表达式1为真,执行这里面的Java语句
}else if(布尔表达式2){Java语句....//如果布尔表达式2为真,执行这里面的Java语句
}else if(布尔表达式3){Java语句....//如果布尔表达式3为真,执行这里面的Java语句
}else{Java语句....//如果以上表达式都为假,那么执行这里面的Java语句
}
注:if语句大括号省略,表示后面只可以跟一句Java语句
if(sex)System.out.println("男");System.out.println("HelloWorld!"); // 以上的这3行代码没有问题,合乎语法。/*else // 这一行编译报错,因为else缺少ifSystem.out.println("女");*/以上代码编译器会自动转换为:if(sex){System.out.println("男");}System.out.println("HelloWorld!"); else// 这一行编译报错,因为else缺少ifSystem.out.println("女");
总结:
- if语句的判断条件必须为布尔值或布尔表达式
- if语句中只要有1个分支执行了, 整个if语句就结束了。
- 凡是带有else分支的,一定可以保证会有一个分支执行。
- 当分支当中“java语句;”只有
1
条,那么大括号{}可以省略,但为了 可读性,最好不要省略。
实战:
//需求:假设系统给定一个人的年龄(这个年龄需要从键盘输入),根据年您判断他属于生命的哪个
//阶段.
// 【0~5】 幼儿
// 【6~10】 少儿
// 【11~18】 青少年
// 【19~35】 青年
// 【36~55】 中年
// 【56~150】 老年public class hello {public static void main(String[] args) {
//这段内容看不懂返回上一章获取键入内容java.util.Scanner s=new java.util.Scanner(System.in);System.out.print("请输入你的年龄:");int num=s.nextInt();String grade="您的年龄不合法";//逻辑业务判断if(num<0||num>150){System.out.println(grade);}else {if(num<=5){grade="您处在生命周期的幼儿阶段";}else if(num<=10){grade="您处在生命周期的少儿阶段";}else if(num<=18){grade="您处在生命周期的青少年阶段";}else if(num<=35){grade="您处在生命周期的青年阶段";}else if(num<=55){grade="您处在生命周期的中年阶段";}else{grade="您处在生命周期的老年阶段";}System.out.println(grade);}}
}例子很简单,但是我们应该注意怎么写才能让代码的执行效率最高
2.switch语句
分支语句,常用于多分支判断
语法格式:
switch(值){case 值1:java语句;...break;//如果值与值1相等,那么执行这里面的Java语句case 值2:java语句;...break;//如果值与值2相等,那么执行这里面的Java语句case 值3:java语句;...break;//如果值与值3相等,那么执行这里面的Java语句default:java语句;//以上值都不想等,那么执行这里面的Java语句}注意:每一个分支后面都需要写上break表示程序在执行完分支后立即退出,不然会出现case穿透
case合并与case穿透
//case合并switch (12){case 12:case 13:case 14:case 15:System.out.println("他们是共用的");}
//运行结果:他们是共用的解析:以本代码为例,表示12,13,14,15只要满足其中一个就可以执行System.out.println("他们是共用的");//case穿透
switch (12){case 12: System.out.println("1");case 13: System.out.println("2");case 14: System.out.println("3");
}
//输出结果:123
解析:当12与12匹配后立即执行后面的代码,由于没有break,程序不会退出,会继续执行下面所有选项的Java语句
总结:
switch语句只支持int和String,但是
byte,short,char
也可以,因为byte short char可以进行自动类型转换,其他类型需要强制转换为避免case穿透,每一个分支后面都要写上break【default不是必须要写】
case可以合并
二、循环结构
1.for循环
语法格式:
for(初始化表达式; 条件表达式; 更新表达式){循环体; // 循环体由java语句构成,需要重复执行的代码片段java语句;java语句;java语句;java语句;....}
注:
int a=0;
for (;a<5;a++){System.out.println(a);//0,1,2,3,4
}System.out.println(a);//5for ( int a=0;a<5;a++){System.out.println(a);//0,1,2,3,4
}System.out.println(a);//找不到符号变量a解析:切记不要把其他编程语言的迭代作用域与Java混淆,比如JS。第一段代码是调用了for括号外面的
变量a,a在for{}的外面,所以可以直接访问到,在循环体结束后将迭代变量的值又返还给了变量a,所以
在外面a的值在迭代的作用下变为了5第二段代码由于a被定义在for{}里面,结果仍然可以可以返还给a,但此时a为局部变量了,外面无
法访问到
总结:
- 初始化表达式 ;布尔表达式;更新表达式都不是必须的但是“;”是必须的。
- 初始化表达式最先执行,并且在整个for循环当中只执行一次
- 条件表达式必须是true/false,不能是其它值
2.while循环
语法格式:
while(布尔表达式){循环体;}
//判断布尔表达式的结果,如果为true就执行循环体,循环体结束之后,再次判断布尔表达式的结果,
//如果还是true,继续执行循环体,直到布尔表达式结果为false,while循环结束。
for与while的转换
for(初始化表达式; 布尔表达式; 更新表达式){循环体;}初始化表达式;while(布尔表达式){循环体;更新表达式;}
总结: while循环的循环体可能执行次数为0次。
3.do-while循环
语法格式:
do {循环体;}while(布尔表达式);//先执行循环体当中的代码,执行一次循环体之后,判断布尔表达式的结果,如果为true,则继续执行
//循环体,如果为false循环结束。
总结:
- 因为while后是()结尾不是{}结尾,所以while后有分号!!
- 至少执行一次
三、选择语句
1.break语句
跳出指定循环:
第一步:你需要给循环起一个名字,例如:a: for(){b:for(){if(条件表达式) break a;code1;code2;code3;}}
第二步:终止:break a;//关于break与continue语句跳出循环的易错点可参考JS专栏第五篇“JS中的语句详解与函数定义”,这与Java是一样的
总结:
- break语句是一个单词成为一个完整的java语句
- break语句使用在switch语句当中,用来终止switch的语句执行,防止case穿透
- break;语句用在循环语句当中,用来终止循环的执行。
- 默认情况下,break语句终止的是离它最近的循环语句。也可以指定终止某个循环,需要给循环起名,采用的语法:break 循环名称;
2.continue语句
使用continue跳过指定循环
a:for(;;更新表达式1){b:for(;;更新表达式2){if(条件表达式){continue a;}code1;code2;code3;}}
总结:
- continue语句是一个单词成为一个完整的java语句
- 一但执行到continue,continue以下代码不执行,直接执行更新表达式,终止当前"本次"循环,进入下一次循环。
3.continue和break的区别
- break表示循环不执行了
- continue表示结束本次循环,直接进入下一次循环继续执行
最后给大家总结极其重要的一点:所有控制语句都可以嵌套使用,但是嵌套使用时候一定要保证格式完美【该缩进缩进】
Java控制语句详解相关推荐
- Apache Thrift - java开发详解
2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...
- Java泛型详解-史上讲解最详细的,没有之一
目录 1. 概述 2. 一个栗子 3. 特性 4. 泛型的使用 4.1 泛型类 4.2 泛型接口 4.3 泛型通配符 4.4 泛型方法 4.4.1 泛型方法的基本用法 4.4.2 类中的泛型方法 4. ...
- python流程控制语句-python学习 流程控制语句详解
###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的 ...
- Java虚拟机详解----JVM常见问题总结
[正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾 ...
- java 泛型详解、Java中的泛型方法、 java泛型详解
本文参考java 泛型详解.Java中的泛型方法. java泛型详解 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即& ...
- 最详细的java泛型详解
来源:最详细的java泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. ja ...
- Java异常详解及如何处理
来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言 ...
- Java基础——Java NIO详解(一)
一.基本概念 1.I/0简介 I/O即输入输出,是计算机与外界世界的一个借口.IO操作的实际主题是操作系统.在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过str ...
- Java基础——Java NIO详解(二)
一.简介 在我的上一篇文章Java NIO详解(一)中介绍了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程NIO(异步IO). 二.异步IO 异步 I/O 是一种没有阻塞地读写数据的方法 ...
最新文章
- OpenCV支持中文字符输出实现
- mysql数据库表的连接查询_mysql数据库多表连接查询问题
- AOP 的利器:ASM 3.0 介绍
- 基于SDP的提议/应答(offer/answer)模型简介
- Lightweight Render Pipeline
- 2.控制反转 spring_ioc
- 二分图匹配之匈牙利算法
- linux mysql服务基础操作(二)
- LaTeX tikz初探——利用emoji画GPS卫星3D分布图(3)
- 说下我常用的几个精简版系统的感受
- GooFlow获取节点/线信息和自定义节点属性
- 人工智能之产生式系统
- 复利,世界第八大奇迹
- 做一名有幸福感的计算机教师,做一名有职业幸福感的教师为题目的作文
- 9008 能 解锁BL_手机刷入面具及twrp教程(包含解bl锁教程)
- 【分布式】psutil cpu_percent如何使用;python如何测试cpu的使用率
- 100+实用功能合集,手机中的神器,黑科技中的战斗鸡!
- “清华学霸计划表”刷爆家长群:自律的孩子有多棒?你想象不到
- 路径规划——CH算法
- nn.Parameter
热门文章
- 【steam接入】如何将unity游戏接入steam(steamworks)
- shim是应该抛异常还是应该fail silently?
- 先导课程 单片机_单片机课程教案-课程教案
- 火车票查询项目计划进度安排
- Til the Cows Come Home(简单的最短路)
- 基于深度学习的花卉识别算法研究
- android标题栏添加按钮_如何从iPhone或Android设备访问PC
- [原创]个人收集有关计算机视觉和模式识别相关的网址
- 从前有座灵剑山--与邪教辩论(1)
- 模拟linux终端测试java,Linux 伪终端(pty)