流程控制分类:

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

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

(1)第一种形式

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

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

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

案例:

  1. public class var {
  2. public static void main(String[] args){
  3. int age = 45;
  4. if(age > 60){
  5. System.out.println("老年人");
  6. }else if(age > 40){
  7. System.out.println("中年人");
  8. }else if(age > 20){
  9. System.out.println("青年人");
  10. }
  11. }
  12. }

运行结果:青年人

省略花括号案例:

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

允许结果:c大于4

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

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

案例:

  1. public class var {
  2. public static void main(String[] args){
  3. char str = 'A';
  4. switch (str){
  5. //可以省略case后代码块的花括号
  6. case 'A':
  7. {
  8. System.out.println("A");
  9. break;
  10. }
  11. case 'B':
  12. {
  13. System.out.println("B");
  14. break;
  15. }
  16. case 'C':
  17. {
  18. System.out.println("C");
  19. break;
  20. }
  21. default:
  22. {
  23. System.out.println("X");
  24. }
  25. }
  26. }
  27. }

运行结果: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循环语句
案例:

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

运行结果:

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

2.do while 循环语句
案例:

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

运行结果:

3.for循环

案例:

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

运行结果:

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

注意:

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

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

允许结果:

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

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

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

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

运行结果:

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

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

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

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

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

《Java基础知识》流程控制的更多相关文章

  1. Java中的流程控制(二)

    关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...

  2. Swift学习——格式控制符和元组流程控制(二)

    Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...

  3. 流程控制<二>

    上一篇:Numbers.Strings.Lists 笔记<一>下一篇:数据结构-Python3.7<三> 如果需要修改迭代中的数据,建议先赋值一个副本(e.g:序列,切片复制的 ...

  4. SpringMVC(二)——流程控制

    SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器). 一,首先 ...

  5. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  6. C#基础课程之二变量常量及流程控制

    课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...

  7. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

  8. JavaScript (二) js的基本语法 - - 运算符、流程控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.运算符 1.一元运算符 ++ -- 都是运算符 ++ 和 -- 可以分为:前+ 和后+ and 前- ...

  9. java 基本语法(五) 流程控制(二) 循环结构

    1.循环结构的四要素① 初始化条件② 循环条件 --->是boolean类型③ 循环体④ 迭代条件说明:通常情况下,循环结束都是因为②中循环条件返回false了. 2.三种循环结构:2.1 fo ...

  10. flutter--Dart基础语法(二)流程控制、函数、异常

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

随机推荐

  1. ubuntu server 1604 设置笔记本盒盖 不操作

    sudo vim /etc/systemd/logind.conf   //打开配置文件 找到 #HandleLidSwitch=suspend  改为 HandleLidSwitch=ignore  ...

  2. Entity Framework Core For MySql查询中使用DateTime.Now的问题

    背景 最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更.本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题. EF Core一直是我们团队中中小型项目常用的O ...

  3. C#变量---xdd

    cshape(c#)学习笔记 1. string str1=Console.ReadLine();//键盘输入的默认为字符串 2.  Console.WriteLine('你的成绩是'+a+'分'); ...

  4. sql语句执行步骤详解

    目录 一.准备工作 二.SQL逻辑查询语句执行顺序 三.SQL书写习惯 一.准备工作 先来一段伪代码,首先你能看懂么? SELECT DISTINCT <select_list> FROM ...

  5. Flow入门初识

    Flow是facebook出品的JavaScript静态类型检查工具. 由于JavaScript是动态类型语言,它的灵活性也会造成一些代码隐患,使用Flow可以在编译期尽早发现由类型错误引起的bug, ...

  6. mui开发:苹果手机自动全屏解决方案

    前一段时间,使用mui写app时,出现了苹果手机播放视频时,自动全屏的情况,并且无法点击控件,只能等到播放完毕后点击控件. 那么怎么解决这个问题呢,弟弟们请看我的下面. 1.在页面的video标签中, ...

  7. ibatis入门实例(完整)

    一:首先展示一下我的web文件结构,首先导入Ibatis所需jar和数据库驱动,从第二步开始跟着笔者一步步来 二:数据库建测试表 CREATE TABLE STUDENT ( ID NUMBER(5) ...

  8. polygon()函数

    polygon():draw the polygons where vertices are given in x and y. polygon(x,y=NULL,density=NULL,angle ...

  9. 网络层 IP

    网络层 -- 数据包 网络层作用 解决什么问题? 在讲网络层之前,其实基于广播的这种通信就可以实现全世界通信了,你吼一声,如果全世界是一个局域网,全世界的计算机肯定可以听得见,从理论上似乎行得通,如果 ...

  10. PHP根据经纬度获取在范围坐标的数据

    // 计算范围,可以做搜索用户 function GetRange($lat,$lon,$raidus){ //计算纬度 $degree = (24901 * 1609) / 360.0; $dpmL ...