流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构、分支结构、循环结构。本篇博客主要是对Java基本语法中的程序流程控制进行详细讲解。


目录:

♫♬:JDK1.5提供了foreach循环,方便的遍历集合、数组元素


顺序结构

Java中定义成员变量时采用合法的前向引用

  1. /*正确方式,在代码块内顺序执行*/
  2. public class Demo11{
  3. int number1 = 10;
  4. int number2 = 12;
  5. int number3 = number1 + number2;
  6. System.out.println(number3);
  7. }
  8. /*错误
  9. class Demo2{
  10. int num1 = 10;
  11. int num3 = num1 + num2;
  12. int num2 = 12;
  13. System.out.println(num3);
  14. }
  15. */

分支结构

if-else分支语句

if 语句三种格式:

  1. if(条件表达式){
  2. 执行代码块;
  3. }

  1. if(条件表达式){
  2. 执行代码块1;
  3. }esle{
  4. 执行代码块2;
  5. }

  1. if(条件表达式1){
  2. 执行代码块1;
  3. }else if(条件表达式2){
  4. 执行代码块2;
  5. }
  6. ......
  7. else{
  8. 执行代码块n;
  9. }

if-else使用说明:

⚘ 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量

⚘ 语句块只有一条执行语句时,一对{}可以省略,但建议保留

⚘ if-else语句结构,根据需要可以嵌套使用

⚘ 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略

⚘ 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓;当多个条件是“包含”关系时,“小上大下 / 子上父下”

✒ 分支结构最终返回的是一个值

练习:

判断成绩:
0<=score<60:不及格;
60<=score<70:及格;
70<=score<80:良好;
80<=score<100:优秀;

  1. public class scoreDemo {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请输入成绩(百分制整数):");
  5. int score = sc.nextInt();
  6. // 多选一
  7. if(score >= 0 && score < 60) {
  8. System.out.println("成绩不及格");
  9. }else if(score >= 60 && score < 70) {
  10. System.out.println("成绩及格");
  11. }else if(score >= 70 && score < 80) {
  12. System.out.println("成绩良好");
  13. }else if(score >= 80 && score <= 100) {
  14. System.out.println("成绩优秀");
  15. }else {
  16. System.out.println("请输入正确的百分制分数");
  17. }
  18. //嵌套使用
  19. if(score <= 100){
  20. if(score <= 80) {
  21. if(score <= 70) {
  22. if(score <= 60) {
  23. System.out.println("成绩不及格");
  24. }else {
  25. System.out.println("成绩及格");
  26. }
  27. }else {
  28. System.out.println("成绩良好");
  29. }
  30. }else {
  31. System.out.println("成绩优秀");
  32. }
  33. }
  34. }
  35. }

switch-case分支语句

switch-cas结构:

  1. switch(表达式){
  2. case 常量1:
  3. 执行语句1
  4. //breark;
  5. case 常量2:
  6. 执行语句2
  7. //breark;
  8. ......
  9. case 常量n:
  10. 执行语句n
  11. //breark;
  12. default:
  13. 执行语句;
  14. //break;
  15. }

switch-case使用说明:

⚘ witch(表达式)中表达式的值 必须是下述几种类型之一:byte ,short,char,int,枚举 (jdk 5.0),String (jdk 7.0)

⚘ case子句中的值必须是常量,不能是变量名或不确定的表达式值

⚘ 同一个switch语句,所有case子句中的常量值互不相同

⚘ break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾,根据实际情况选择加不加

⚘ default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default,相当于if-else中末尾的else

练习:

判断成绩:

  1. public class switchScoreDemo {
  2. public static void main(String args[]) {
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请输入成绩(百分制):");
  5. int score = sc.nextInt();
  6. switch (score / 10) {
  7. case 0:
  8. case 1:
  9. case 2:
  10. case 3:
  11. case 4:
  12. case 5:
  13. System.out.println("成绩不及格");
  14. break;
  15. case 6:
  16. System.out.println("成绩及格");
  17. break;
  18. case 7:
  19. System.out.println("成绩良好");
  20. break;
  21. case 8:
  22. case 9:
  23. case 10:
  24. if(score==100){
  25. System.out.println("成绩优秀");
  26. break;
  27. }
  28. default:
  29. System.out.println("请输入正确的百分制整数");
  30. break;
  31. }
  32. }
  33. }

循环结构

**循环语句的四个组成部分:**

☯ 初始化部分(init_statement)

☯ 循环条件部分(test_exp)

☯ 循环体部分(body_statement)

☯ 迭代部分(alter_statement)

for循环语句

for循环语法格式:

  1. for(➊初始化部分;➋循环条件部分;➍迭代部分){
  2. ➌循环体部分;
  3. }
  4. //执行过程➊-➋-➌-➍-➋-➌-➍-...-条件不满足/break跳出

for循环使用说明:

⚘ ②循环条件部分为boolean类型表达式,当值为false时,退出循环

⚘ ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔

⚘ ④可以有多个变量更新,用逗号分隔

⚘ for循环可以进行多重嵌套

⚘ 使用break可以跳出循环(for,while,do-while)

⚘ ①可以在for循环外定义,④可以在③中定义,但是②循环条件必须在for()中声明,需要注意的是①定义在for()中,其作用域就在for(){}内

练习:

1、输出abcbcbc

2、输出9*9乘法表

  1. public class forDemo {
  2. public static void main(String args[]) {
  3. //输出abcbcbc方法一
  4. int n = 1;
  5. for(System.out.print("a");n<=3;System.out.print('c'),n++) {
  6. System.out.print('b');
  7. }
  8. System.out.println( );
  9. //输出abcbcbc方法二
  10. int m = 1;
  11. System.out.print('a');
  12. for(;m<=3;) {
  13. m++;
  14. System.out.print("bc");
  15. }
  16. System.out.println("");
  17. //9*9乘法表
  18. for(int i = 1; i <= 9; i++) {
  19. for(int j = 1; j <= i; j++) {
  20. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  21. }
  22. System.out.println();
  23. }
  24. }
  25. }

展示效果:

while循环语句

while循环语法格式:

  1. ➊初始化部分
  2. while(➋循环条件部分){
  3. ➌循环体部分;
  4. ➍迭代部分;
  5. }
  6. //执行过程➊-➋-➌-➍-➋-➌-➍-...-条件不满足/break跳出

while循环使用说明:

⚘ 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环

⚘ for循环和while循环,do...while循环可以相互转换

练习:

输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数

字立方和等于其本身。

例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

  1. public class whileDemo {
  2. public static void main(String args[]) {
  3. System.out.println("水仙花数:");
  4. int i = 100;
  5. while(i < 1000) {
  6. int hundred = i / 100;
  7. int decade = i % 100 /10;
  8. int bits = i % 10;
  9. int num = hundred * hundred * hundred + decade * decade * decade + bits * bits * bits;
  10. if(i == num) {
  11. System.out.println(i);
  12. }
  13. i++;
  14. }
  15. }
  16. }

do...while循环语句

  1. ➊初始化部分
  2. do{
  3. ➌循环体部分;
  4. ➍迭代部分;
  5. }while(➋循环条件部分);
  6. //执行过程➊-➌-➍-➋-➌-➍-...-条件不满足/break跳出

do...while循环使用说明:

⚘ while循环和do...while循环用法一致,不同的是do...while至少执行一次

练习:

输出0123456789字符串

  1. public class doWhileDemo {
  2. public static void main(String args[]) {
  3. int i = 0;
  4. String s = "";
  5. do{
  6. s += i;
  7. i++;
  8. }while(i <= 9);
  9. }
  10. }

其他内容

无限循环&嵌套的应用

  • “无限循环”

    1. //格式
    2. for(;;){
    3. 执行语句;
    4. //在某种条件下break跳出循环
    5. }
    6. while(true){
    7. 执行语句;
    8. //在某种条件下breaK跳出循环
    9. }
    10. do{
    11. 执行语句;
    12. //在某种条件下break跳出循环
    13. }while(true);

    ⚘ 无限循环存在的原因是并不

    知道循环多少次,需要根据循环体内部某些条件来控制循环的结束

  • 嵌套

    ⚘ 分支语句,循环语句都可以相互嵌套,但是最好不要超过三层

    ⚘ 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。

    ⚘ 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始外层循环的下一次的循环

    ⚘ 设外层循环次数为m次,内层为n次,外层循环执行一次内层循环执行n次,总的内层循环体实际上需要执行m*n次

break&continue关键字

  • break关键字

⚘ break语句用于终止某个语句块的执行

⚘ break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是

哪一层语句块

  1. public class Demo {
  2. public static void main(String args[]) {
  3. //9*9乘法表
  4. for(int i = 1; i <= 9; i++){
  5. for(int j = 1; j <= i; j++){
  6. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  7. }
  8. System.out.println();
  9. }
  10. // 当i=6时直接break
  11. System.out.println("直接break");
  12. for(int i = 1; i <= 9; i++){
  13. for(int j = 1; j <= i; j++){
  14. if(j == 6) {
  15. break;
  16. }
  17. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  18. }
  19. System.out.println();
  20. }
  21. System.out.println("break la2");
  22. System.out.println("break la2");
  23. la1: for(int i = 1; i <= 9; i++){
  24. la2:for(int j = 1; j <= i; j++){
  25. if(j == 6) {
  26. break la2;
  27. }
  28. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  29. }
  30. System.out.println();
  31. }
  32. System.out.println("break la1");
  33. la1: for(int i = 1; i <= 9; i++) {
  34. la2: for(int j = 1; j <= i; j++){
  35. if(j == 6) {
  36. break la1;
  37. }
  38. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  39. }
  40. System.out.println();
  41. }
  42. System.out.println();
  43. System.out.println("continue la2");
  44. la1: for(int i = 1; i <= 9; i++) {
  45. la2: for(int j = 1; j <= i; j++){
  46. if(j == 6) {
  47. continue la2;
  48. }
  49. System.out.print(i + "*" + j + "=" + (i*j)+" ");
  50. }
  51. System.out.println();
  52. }
  53. }
  54. }

展示效果:



  • continue关键字

⚘ continue只能使用在循环结构中

⚘ continue语句用于跳过其所在循环语句块的一 一 次执行,继续下一次循环

⚘ continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,同break的用法类型

附加说明

⚘ eturn:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束

⚘ 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

⚘ break只能用于switch语句和循环语句中

⚘ continue 只能用于循环语句中

⚘ break和continue二者功能类似,但continue是终止本次循环,break是终止本层循环

⚘ break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句

⚘ 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面

⚘ 很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条

语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同于goto的


本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布

Java基本语法--程序流程控制的更多相关文章

  1. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

  2. Java基础之程序流程控制

    Java中的程序流程控制 Java中的程序流程分为三种结构:①顺序结构:②分支结构:③循环结构 一.顺序结构 Java中定义成员变量的时候,采用的是前向引用,也就是后面的变量可以引用之前定义好的变量. ...

  3. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

  4. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  5. Java基础语法02——流程控制

    流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)

  6. 第2章 Java基本语法(下): 流程控制--项目(记账本)

    2-5 程序流程控制 2-5-1 顺序结构 2-5-2 分支语句1:if-else结构 案例 class IfTest1{ public static void main(String[] args) ...

  7. Java笔记(六)……程序流程控制

    判断结构 三种结构: 1: if(条件表达式) 2: { 3: 执行语句; 4: } 5:  6: if(条件表达式) 7: { 8: 执行语句; 9: } 10: else 11: { 12: 执行 ...

  8. Java学习day4 程序流程控制一

    一.分支结构 条件语句:if...else if语句: 一个 if 语句包含一个布尔表达式和一条或多条语句,如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代 ...

  9. java中的程序流程控制

    一.布尔逻辑1.布尔运算符:①短路和——&&:判断两个表达式,如果第一个为真,继续判断第二个表达式,如果第一个为假,就不需要判断第二个变大时②和——&:判断两个表达式,如果第一 ...

随机推荐

  1. MySQL真正的UTF-8字符集utf8mb4

    MySQL有个utf-8的坑 MySQL 的 utf8 实际上不是真正的 UTF-8.utf8 只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节. MySQL 一直没有修复这个 ...

  2. 基于arduino的气象站

    bmp180的简介: • 压力范围:~1100hPa(海拔 米~- 米) • 电源电压:.8V~.6V(VDDA), .62V~.6V(VDDD) • 尺寸:.6mmx3.8x0.93mm • 低功耗 ...

  3. Python入门1.0

    第一阶段 基础到高级 ATM+购物车项目 选课系统 计算机病毒 病毒程序(windows)防止被杀死 控制键盘摄像头 上传对方数据 有很强的伪装性 服务端(阿里云) 第二阶段 商业项目 博客系统 路飞 ...

  4. 【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第46章       STM32H7的ADC应用之DMA方式多 ...

  5. .NET知识梳理——6.lambda

    1. lambda 1.1        匿名方法lambda表达式 Lambda表达式 Lambda是一个匿名方法,实例化委托的一个参数,编译的时候会产生一个密封类,同时增加一个方法. Lambda ...

  6. 程序员:我终于知道post和get的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kebi007/article/detail ...

  7. 【Debian学徒记事】记一次解决Debian开机1min30s

    记一次解决Debian开机1min30s 打开我亲爱的Debian 欸,好像有点慢 [* * * * ] A start job is running for....(*/1min30s) [TIME ...

  8. Visual Studio 2017中使用gulp编译sass/scss

    在Visual Studio 2017中使用gulp编译sass/scss文件 需要的环境:Visual Studio 2017.Node.js.npm 在vs2017中 [视图]-[其他窗口]-[任 ...

  9. JavaSE学习笔记(6)---异常

    JavaSE学习笔记(6)---异常 ​ 软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外.遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理 ...

  10. 百度api识别验证码登录

    import time from selenium import webdriver from aip import AipOcr def initial(): """ ...