流程控制分类:

一、顺序结构
如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句。

二、分支结构
1.if语句
if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制。有如下三种形式:

(1)第一种形式

if(布尔表达式或者布尔值){
  语句...
}
(2)第二种形式

if(布尔表达式或者布尔值){
  语句...
}else{
  语句...
}
(3)第三种形式

if(布尔表达式或者布尔值){
  语句...
}
else if(布尔表达式或者布尔值){
  语句...
}
  ...//可以有零个或者多个else if语句
else//最后的else语句也可以省略
{
  语句...
}

案例:

public class var {
public static void main(String[] args){
int age = 45;
if(age > 60){
System.out.println("老年人");
}else if(age > 40){
System.out.println("中年人");
}else if(age > 20){
System.out.println("青年人");
}
}
}

运行结果:青年人

省略花括号案例:

public class var {
public static void main(String[] args){
int c = 5;
if(c > 4)
System.out.println("c大于4");
else
System.out.println("c不大于4");
}
}

允许结果:c大于4

2.switch语句
(1)switch的语法格式如下:

switch (expression){
//可以省略case后代码块的花括号
case condition1:
{
statement(s);
break;
}
case condition2:
{
statement(s);
break;
}
...
case conditionN:
{
statement(s);
break;
}
default:
{
statement(s);
}
}

案例:

public class var {
public static void main(String[] args){
char str = 'A';
switch (str){
//可以省略case后代码块的花括号
case 'A':
{
System.out.println("A");
break;
}
case 'B':
{
System.out.println("B");
break;
}
case 'C':
{
System.out.println("C");
break;
}
default:
{
System.out.println("X");
}
}
}
}

运行结果:A

注意:

switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型、枚举类型和java.lang.String类型(Java7才允许),不能是StringBuffer或者StringBuilder这两种字符串类型,也不能是boolean类型。
switch语句会先求出expression表达式的值,然后拿这个表达式和case标签后的值进行比较,一旦遇到相等的值,程序就开始执行这个case标签后的代码,不再判断与后面case、default标签的条件是否匹配,除非遇到break才会结束,所以注意不要忽略case后代码块的break。

三、循环结构
一般循环语句可能包含4个部分:初始化语句(init_statement)、循环条件(test_expression)、循环体(body_statement)、迭代语句(iteration_statement)[循环体如果只有一行语句,可以省略花括号]

三种循环结构之间可以相互嵌套。

1.while循环语句
案例:

public class var {
public static void main(String[] args){
int index = 1;
while(index < 5){
System.out.println("index:"+index);
index++;
}
}
}

运行结果:

注意:如果省略了循环体的花括号,那么while循环条件只控制到紧跟该循环条件语句的第一个分号处。

2.do while 循环语句
案例:

public class var {
public static void main(String[] args){
int index = 1;
do{
System.out.println("index:"+index);
index++;
}while (index < 5);
}
}

运行结果:

3.for循环

案例:

public class var {
public static void main(String[] args){
for (int index = 0; index < 5; index++) {
System.out.println("index:"+ index);
}
}
}

运行结果:

如果循环体只有一行语句,那么循环体的花括号可以省略

注意:

for循环如果需要在初始化表达式中声明多个变量,那么这些变量应该具有相同的数据类型。
for循环圆括号中只有两个分号是必需的,初始化语句、循环条件、迭代语句部分都是可以省略的。如果省略了循环条件,则这个循环条件默认为true。
建议不要在循环体内修改循环变量(也叫循环计数器)的值,否则会增加程序出错的可能性。万一程序真的需要访问,修改循环变量的值,建议重新定义一个临时变量,先将循环变量的值赋给临时变量,然后对临时变量的值进行修改。
把for循环的初始化语句放在循环之前定义有一个作用:可以扩大初始化语句中所定义变量的作用域。
4.foreach循环
案例:

public class var {
public static void main(String[] args){
int[] arr = new int[]{1,2,3,4,5};
for (int index : arr) {
System.out.println("index:"+ index);
}
}
}

允许结果:

foreach的语句格式: 
for(元素类型t 元素变量x : 遍历对象obj){ 
引用了x的java语句; 
}

5.控制循环结构
break:用于完全结束break语句所在循环,跳出当前循环体。

break还可以用于直接结束其外层循环,此时需要借助标签。Java的标签就是一个紧跟着英文冒号(:)的标识符。与其他语言不同的是,Java中的标签只有放在循环语句之前才有作用。例如下面代码:

public class var {
public static void main(String[] args) {
//外层循环,outer作为标识符
outer:
for(int i = 0;i < 5;i++) {
//内层循环
for(int j = 0;j < 3;j++) {
System.out.println("i="+i+" j="+j);
if(j == 1) {
//跳出outer标签所标识的循环
break outer;
}
}
}
}
}

运行结果:

第11行的break outer;语句将会导致结束outer标签指定的循环,而不是break所在的循环。注意:break后的标签必须是一个有效的标签,即应该把标签放在break语句所在循环的外层循环之前定义。当然,也可以把标签放在break语句所在循环之前定义,只是这样就失去了标签的意义,因为break默认就是结束其所在的循环。

continue:用于忽略本次循环剩下的语句,接着开始下一次的循环,并不会终止循环。

与break类似,continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。这个标签通常应该放在continue所在循环的外层循环之前定义。

return:直接结束整个方法,从而结束循环。

原文:https://blog.csdn.net/qq_41338341/article/details/81107840

最新文章

  1. AndroidStudio安装流程 以及 使用过程中出现的异常
  2. 多兼容的JS获取鼠标坐标
  3. 用JQ仿造百度书籍预售页面的单屏滚页效果
  4. jquery插件——点击交换元素位置(带动画效果)
  5. SVN中Branch和Merge实践
  6. C#导出excel
  7. (转)数据库获得当前时间getdate()
  8. [改善Java代码]注意Class类的特殊性
  9. 1628. White Streaks(STL)
  10. cocos2d-x 判断系统语言
  11. 【转】Entity Framework教程
  12. [转]组合数取模 Lucas定理
  13. 关于多台机器之前session共享,sessionState mode=&quot;StateServer&quot; 问题的困扰
  14. 【转】UML的9种图例解析
  15. Suricata 之IPS模式
  16. 详解ebs接口之客户配置文件导入(一)
  17. RIpng配置(GNS3)(第九组)
  18. 操作系统组成和工作原理以及cpu的工作原理
  19. Docker Weave 应用部署
  20. 初学javaScript推荐工具

热门文章

  1. zabbix template
  2. 【2018寒假集训 Day2】【动态规划】垃圾陷阱(挖坑等填,未完成)
  3. vue防抖节流之v-debounce--throttle使用指南
  4. linux bash shell编程之参数变量和流程控制。
  5. yum运行报错:libcurl.so.4: cannot open shared object file: No such file or directory
  6. LESSON 2-Discrete Source Encoding
  7. Vue组件通信之非父子组件传值
  8. 以传参的方式执行shell(模板)
  9. 【Android - 自定义View】之View的draw过程解析
  10. 细说JVM内存模型