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("女");

总结:

  1. if语句的判断条件必须为布尔值或布尔表达式
  2. if语句中只要有1个分支执行了, 整个if语句就结束了。
  3. 凡是带有else分支的,一定可以保证会有一个分支执行。
  4. 当分支当中“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语句

总结:

  1. switch语句只支持int和String,但是byte,short,char也可以,因为byte short char可以进行自动类型转换,其他类型需要强制转换

  2. 为避免case穿透,每一个分支后面都要写上break【default不是必须要写

  3. 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为局部变量了,外面无
法访问到

总结:

  1. 初始化表达式 ;布尔表达式;更新表达式都不是必须的但是“;”是必须的。
  2. 初始化表达式最先执行,并且在整个for循环当中只执行一次
  3. 条件表达式必须是true/false,不能是其它值

2.while循环

语法格式:

 while(布尔表达式){循环体;}
//判断布尔表达式的结果,如果为true就执行循环体,循环体结束之后,再次判断布尔表达式的结果,
//如果还是true,继续执行循环体,直到布尔表达式结果为false,while循环结束。

for与while的转换 

 for(初始化表达式; 布尔表达式; 更新表达式){循环体;}初始化表达式;while(布尔表达式){循环体;更新表达式;}

总结: while循环的循环体可能执行次数为0次。

3.do-while循环

语法格式:

 do {循环体;}while(布尔表达式);//先执行循环体当中的代码,执行一次循环体之后,判断布尔表达式的结果,如果为true,则继续执行
//循环体,如果为false循环结束。

总结: 

  1. 因为while后是()结尾不是{}结尾,所以while后有分号!!
  2. 至少执行一次

三、选择语句

1.break语句

跳出指定循环:

第一步:你需要给循环起一个名字,例如:a: for(){b:for(){if(条件表达式) break a;code1;code2;code3;}}
第二步:终止:break a;//关于break与continue语句跳出循环的易错点可参考JS专栏第五篇“JS中的语句详解与函数定义”,这与Java是一样的

总结:

  1. break语句是一个单词成为一个完整的java语句
  2. break语句使用在switch语句当中,用来终止switch的语句执行,防止case穿透
  3. break;语句用在循环语句当中,用来终止循环的执行。
  4. 默认情况下,break语句终止的是离它最近的循环语句。也可以指定终止某个循环,需要给循环起名,采用的语法:break 循环名称;

2.continue语句

使用continue跳过指定循环

 a:for(;;更新表达式1){b:for(;;更新表达式2){if(条件表达式){continue a;}code1;code2;code3;}}

总结:

  1. continue语句是一个单词成为一个完整的java语句
  2. 一但执行到continue,continue以下代码不执行,直接执行更新表达式,终止当前"本次"循环,进入下一次循环。

3.continue和break的区别

  • break表示循环不执行了
  • continue表示结束本次循环,直接进入下一次循环继续执行

最后给大家总结极其重要的一点:所有控制语句都可以嵌套使用,但是嵌套使用时候一定要保证格式完美【该缩进缩进】 

Java控制语句详解相关推荐

  1. Apache Thrift - java开发详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...

  2. Java泛型详解-史上讲解最详细的,没有之一

    目录 1. 概述 2. 一个栗子 3. 特性 4. 泛型的使用 4.1 泛型类 4.2 泛型接口 4.3 泛型通配符 4.4 泛型方法 4.4.1 泛型方法的基本用法 4.4.2 类中的泛型方法 4. ...

  3. python流程控制语句-python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的 ...

  4. Java虚拟机详解----JVM常见问题总结

    [正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾 ...

  5. java 泛型详解、Java中的泛型方法、 java泛型详解

    本文参考java 泛型详解.Java中的泛型方法. java泛型详解 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即& ...

  6. 最详细的java泛型详解

    来源:最详细的java泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. ja ...

  7. Java异常详解及如何处理

    来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言 ...

  8. Java基础——Java NIO详解(一)

    一.基本概念 1.I/0简介 I/O即输入输出,是计算机与外界世界的一个借口.IO操作的实际主题是操作系统.在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过str ...

  9. Java基础——Java NIO详解(二)

    一.简介 在我的上一篇文章Java NIO详解(一)中介绍了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程NIO(异步IO). 二.异步IO 异步 I/O 是一种没有阻塞地读写数据的方法 ...

最新文章

  1. OpenCV支持中文字符输出实现
  2. mysql数据库表的连接查询_mysql数据库多表连接查询问题
  3. AOP 的利器:ASM 3.0 介绍
  4. 基于SDP的提议/应答(offer/answer)模型简介
  5. Lightweight Render Pipeline
  6. 2.控制反转 spring_ioc
  7. 二分图匹配之匈牙利算法
  8. linux mysql服务基础操作(二)
  9. LaTeX tikz初探——利用emoji画GPS卫星3D分布图(3)
  10. 说下我常用的几个精简版系统的感受
  11. GooFlow获取节点/线信息和自定义节点属性
  12. 人工智能之产生式系统
  13. 复利,世界第八大奇迹
  14. 做一名有幸福感的计算机教师,做一名有职业幸福感的教师为题目的作文
  15. 9008 能 解锁BL_手机刷入面具及twrp教程(包含解bl锁教程)
  16. 【分布式】psutil cpu_percent如何使用;python如何测试cpu的使用率
  17. 100+实用功能合集,手机中的神器,黑科技中的战斗鸡!
  18. “清华学霸计划表”刷爆家长群:自律的孩子有多棒?你想象不到
  19. 路径规划——CH算法
  20. nn.Parameter

热门文章

  1. 【steam接入】如何将unity游戏接入steam(steamworks)
  2. shim是应该抛异常还是应该fail silently?
  3. 先导课程 单片机_单片机课程教案-课程教案
  4. 火车票查询项目计划进度安排
  5. Til the Cows Come Home(简单的最短路)
  6. 基于深度学习的花卉识别算法研究
  7. android标题栏添加按钮_如何从iPhone或Android设备访问PC
  8. [原创]个人收集有关计算机视觉和模式识别相关的网址
  9. 从前有座灵剑山--与邪教辩论(1)
  10. 模拟linux终端测试java,Linux 伪终端(pty)