Java 控制语句:循环、条件判断
基础很重要,基础很重要,基础很重要。重要的事情说三遍,。
程序设计中的控制语句主要有三种:顺序、分支和循环。我们每天写的代码,除了业务相关,里面会包含大量的控制语句。但是控制语句的基本使用,是否有些坑我们需要避免,以及一些常见的规范我们是否遵守了呢,我们来简单复习一下。
控制语句包含:
1、分支语句:if和switch
2、循环语句:while、for、do-while(使用较少),(在c#中还有一种语法糖foreach、linq的each等,这里不比较c#)
3、跳转语句:break、continue、return和throw
看到这些控制语句,这是我们最熟悉的亲人啊,我们每天敲的代码,有多少是if,说多了都是泪。
下面逐个展开,
分支语句:if和switch,分支语句是一种控制机制,使程序具有有限的判断能力,可能根据不同的输入,执行不同的操作。分支语句又称条件语句,使部分程序可根据某些表达式的值被有选择的执行。
对于分支语句的单元测试比较麻烦,需要传递不同的输入,来进行验证。
if语句:if 条件的值是true,就会执行if内部逻辑,否则会执行else。
注意:
1、对于if、else if、else的判断语句,只会且只会执行其中的一个逻辑。
2、if 中的条件表达式计算的结果必须为boolean类型,其他类型的编译会失败
3、alibab JAVA开发规范:【强制】if/for/while/switch/do 等保留字与左右括号之间都必须加空格。保存格式化代码,IDE会自动添加空格
4、alibab JAVA开发规范:【强制】在 if/else/for/while/do 语句中必须使用大括号,即使只有一行代码,避免使用下
面的形式:if (condition) statements。简单描述就是,if内的逻辑必须包含大括号,即使是空。
5、alibab JAVA开发规范:【推荐】推荐尽量少用 else, if-else 的方式可以改写成:
if(condition){
…
return obj;
}
// 接着写 else 的业务逻辑代码;
说明:如果使用要 if-else if-else 方式表达逻辑,【强制】请勿超过 3 层,超过请使用状态设计模式。
通过代码简单回忆下,
String name = "郭志奇";
if (name == "郭语晨") {
System.out.println("我闺女");
} else if (name.contains("袁")) {
System.out.println("我媳妇");
} else if (name.toUpperCase() == "GUO") {
System.out.println("我的姓");
} else {
{
System.out.print("我也不知道是什么");
}
}
switch语句:
name = "郭语晨";
switch (name) {
case "郭语晨":
System.out.println("我闺女");
case "袁":
System.out.println("我媳妇");
break;
case "GUO":
System.out.println("我的姓");
break;
default:
System.out.println("我也不知道是什么");
break;
}
程序输出:

注意:
1、break是可以省略的,但是除了最后一个default语句对应的break,其他case的break尽量别省略。最优解:所有的break都保留
2、如果去掉break,会出现什么?看上面你的代码,case “郭语晨”后边的break是没有的,输出了两行。这就表示,如果break去除,那么程序会继续匹配下面的case,而不会停止。
3、alibaba 开发规范:【强制】在一个 switch 块内,每个 case 要么通过 break/return 来终止,要么注释说明程序
将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在
最后,即使它什么代码也没有
4、switch的表达式计算结果只能是int、bool、char、short、string等类型,不能是long。原因:long代表的精度很大,存在误差。

循环语句:循环语句使程序代码循环执行,有三种循环构造,while、do-while、for。java5之后有for-each
for和while循环在执行循环体之前测试循环条件,do-while在执行完循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,do-while将至少执行一次循环体。
while语句:
while每次执行都会判断循环条件,尽量避免出现无限循环的情况。
int index = 0;
while (name == "郭志奇") {
index++;
System.out.println(index + "");
System.out.println(String.valueOf(index));
if (index == 3675) {
System.out.println("太累了,退出");
break;
}
}
注意:
1、退出while循环有几种方式,break、更改循环判断条件、throw
2、总之 不要出现无限循环。
3、while循环条件语句只能写一个表达式,而且是衣蛾布尔型表达式。如果需要循环变量,必须在while之前对循环变量畸形初始化。
do-while 和while类似,来段代码结束。
index = 0;
do {
index++;
System.out.println(index);
if(index==564)
{
System.out.println("退出循环 太累了");
break;
}
} while (name == "郭志奇");
注意:do-while循环会在判断循环体之前先执行一次
使用最广泛、最重要的for循环:
for(初始化;循环条件;迭代){}
for循环执行,首先会执行初始化语句,初始化循环变量和其他变量,然后会判断循环条件是否满足,如果满足,继续执行循环体并计算迭代语句,之后再次判断循环条件。 请注意各个语句的执行先后顺序,在特定情况下会用到。

来段代码结束
for (int i = 0; i <= 292; i++) {
System.out.println("当前数值为" + i);
if (i == 2) {
continue;
}
if (i == 43) {
break;
}
}
注意:
1、for循环不需要提前声明条件变量
2、执行顺序:初始化变量--》循环条件是否满足--》计算迭代语句。如此循环
3、break会跳出循环,continue会继续下次执行
特殊情况下,for实现无限循环,只需将判断及迭代语句删除
for (;; index++) {
System.out.println("无限循环");
if (index == 4) {
System.out.println("退出无限循环");
break;
}
}
for-each 语句:
for-each是for循环的一个变体,比起c#的foreach 语法接近。主要作用是用来遍历集合元素,对于集合的遍历,用for-each比较简单方便,不需要根据集合索引去定位。
List<String> conn = new ArrayList<String>();
conn.add("ddd");
conn.add("mmm");
conn.add("eee");
// 使用for循环执行遍历
for (int i = 0; i < conn.size(); i++) {
System.out.println("for循环:" + conn.get(i));
} for (var item : conn) {
System.out.println("foreach循环" + item);
}
个人感觉for-each循环很只是提供一个语法糖。
虽然我们天天在敲代码,但是基础知识还是要偶尔复习下,也许能发现其中某个点我们理解有错误。减少bug才是我们的终极目标。
Java 控制语句:循环、条件判断的更多相关文章
- Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定
Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定 创建 angular 组件 https://github.com/angular/angular- ...
- Bourne Shell:控制语句、条件判断、文本处理、常用命令
条件判断是一个程序获得智能的基础,而Bourne Shell脚本则通过命令 [ 来模拟大多数编程语言中的条件表达式. shell中支持的控制结构有: (1) if then else fi (2) f ...
- py定义变量-循环-条件判断
定义变量 # print('hahaha')name = " let'go "title = '刘伟长得 "很帅"!'conent = ''' let' ...
- Java学习之==>条件判断、循环控制
一.条件判断 1.if-else 示例: /** * 第1种,1个分支 */ public void case1() { int age = 15; if (age > 18) { System ...
- Python学习笔记----数据类型 运算符 循环 条件判断
1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...
- python入门(11)条件判断和循环
python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...
- Java之 循环(三)
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...
- .NET Core CSharp初级篇 1-2 循环与判断
.NET Core CSharp初级篇 1-2 本节内容循环与判断 循环 循环是一个在任何语言都是极为重要的语法,它可以用于很多东西,例如迭代数组等等.在C#中,语法层面的循环有:for , fore ...
- Java控制语句——分支、循环、跳转
分支语句(if语句,switch语句): 循环语句(for,while,do...while); 跳转语句(break,continue,return): 分支语句(if语句,switch语句) if ...
随机推荐
- XML 和 DTD
1.XML 1.1xml简介 a)xml,eXtensible Markup Language,可扩展标记语言,是一种标记语言: b)xml是一种非常灵活的语言,没有固定的标签,所有的额标签都可以自定 ...
- 作为IT,你的价值在哪里?
也许最近是真的被无穷无尽的数据整理.导入.再整理.再导入给恶心到了. 业务部提交的数据只是一个非常初始的数据,IT还得在这个基础上七整八整,对导出的结果还要再做二次导入三次导入,不仅要帮业务部批导生成 ...
- Multiple Server Query Execution报The result set could not be merged..
在SQL Server中使用Multiple Server Query Execution这个功能做数据库维护或脚本发布时非常方便,昨天由于磁盘空间原因,删除清理了大量的软件和组件,结果导致SSMS客 ...
- vue分页组件二次封装---每页请求特定数据
关键步骤: 1.传两个参数:pageCount (每页条数).pageIndex (页码数): 2.bind方法的调用 <!-- 这部分是分页 --> <div class=&quo ...
- 洗礼灵魂,修炼python(63)--爬虫篇—re模块/正则表达式(1)
爬虫篇前面的某一章了,我们要爬取网站页面源代码的数据,要从中获取到我们想要的数据,是不是感觉很费力,确实费力对吧?那么有没有什么有利的工具来解决这个问题呢?那就是这一篇博文的主题—— 正则表达式简介 ...
- C#学习之接口
什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致.个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的. ...
- dialog 关闭 清除
div.dialog({ close: function () { $(this).dialog('destroy').remove(); } });
- 三、Tableau筛选器的使用
一.使用筛选器制作联动效果 注意,下面两幅图以‘是否盈利’来添加颜色标签 图一:地图 图二:月度销售客户细分 图三:月度销售产品类别 1.新增仪表盘:将图一.图二.图三拉进同一个仪表盘 2.在图一原图 ...
- c/c++ 字节对齐
c 字节对齐 概念: 结构体里会包括各种类型的成员,比如int char long等等,它们要占用的空间不同,系统为一个结构体开辟内存空间时,会有2种选择. 第一种:节省空间的方案,以上面的列子来说的 ...
- 4.6Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist2d()直方图
目录 目录 前言 (一)直方图 (二)双直方图 目录 前言 今天我们学习的是直方图,导入的函数是: plt.hist(x=x, bins=10) 与plt.hist2D(x=x, y=y) (一)直方 ...