当前位置: 首页 > news >正文

编程之舞:流程控制乐章

流程控制语句

    • 1. 复合语句
  • 2. 条件语句
    • 2.1 if条件语句
    • 2.2 switch多分支语句
  • 3. 循环语句
    • 3.1 while循环语句
    • 3.2 do...while循环语句
    • 3.3 for循环语句
  • 4. 循环控制
    • 4.1 break语句
    • 4.2 continue语句
  • 5. 实践与练习

1. 复合语句

复合语句是由一对花括号括起来的语句块,可以包含多个语句。一般用于控制流程的执行顺序。

示例代码:

public class CompoundStatementExample {public static void main(String[] args) {int a = 5;int b = 10;// 复合语句开始{int c = a + b;System.out.println("c = " + c);}// 复合语句结束// 其他语句System.out.println("a = " + a);System.out.println("b = " + b);}
}

代码运行结果:

c = 15
a = 5
b = 10

代码分析:

  • 复合语句中的变量c是局部变量,只在复合语句的作用域内有效。
  • 其他语句中的变量ab是全局变量,在整个main函数的作用域内有效。

2. 条件语句

条件语句用于根据条件的不同来执行不同的代码块。

2.1 if条件语句

if语句根据给定的条件判断是否执行特定的代码块。

示例代码:

public class IfStatementExample {public static void main(String[] args) {int x = 10;if (x > 5) {System.out.println("x大于5");} else {System.out.println("x小于等于5");}}
}

代码运行结果:

x大于5

代码分析:

  • 如果x的值大于5,则执行if条件语句中的代码块,否则执行else中的代码块。

2.2 switch多分支语句

switch语句根据给定的表达式的值,从多个选项中选择一个分支执行。

示例代码:

public class SwitchStatementExample {public static void main(String[] args) {int day = 3;String dayOfWeek;switch (day) {case 1:dayOfWeek = "星期一";break;case 2:dayOfWeek = "星期二";break;case 3:dayOfWeek = "星期三";break;default:dayOfWeek = "未知";break;}System.out.println("今天是" + dayOfWeek);}
}

代码运行结果:

今天是星期三

代码分析:

  • 根据day的值,选择相应的分支执行。如果找不到匹配的分支,则执行default分支。

3. 循环语句

循环语句用于重复执行一段代码,直到给定的条件不再满足为止。

3.1 while循环语句

while循环语句在执行循环体之前先判断条件是否成立,如果条件成立,则执行循环体。

示例代码:

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

代码运行结果:

i = 1
i = 2
i = 3
i = 4
i = 5

代码分析:

  • 在每次循环开始时,先判断i <= 5的条件是否成立。
  • 如果条件成立,则执行循环体中的代码,然后将i的值加1。
  • 循环会一直执行,直到条件不再满足为止。

3.2 do…while循环语句

do...while循环语句先执行一次循环体,再判断条件是否成立,如果条件成立,则继续执行循环体。

示例代码:

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

代码运行结果:

i = 1
i = 2
i = 3
i = 4
i = 5

代码分析:

  • 在每次循环开始时,先执行循环体中的代码。
  • 然后判断i <= 5的条件是否成立。
  • 如果条件成立,则继续执行循环体。
  • 循环会一直执行,直到条件不再满足为止。

3.3 for循环语句

for循环语句在执行循环之前执行一次初始化语句,然后判断条件是否成立,如果条件成立,则执行循环体,并执行循环后操作。

示例代码:

public class ForLoopExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {System.out.println("i = " + i);}}
}

代码运行结果:

i = 1
i = 2
i = 3
i = 4
i = 5

代码分析:

  • 在循环开始之前,先执行int i = 1的初始化语句。
  • 每次循环开始时,先判断i <= 5的条件是否成立。
  • 如果条件成立,则执行循环体中的代码,然后执行i++的循环后操作。
  • 循环会一直执行,直到条件不再满足为止。

4. 循环控制

循环控制用于在循环体内部控制循环的执行流程。

4.1 break语句

break语句用于立即退出循环,不再执行循环体中剩余的代码。

示例代码:

public class BreakStatementExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i == 3) {break;}System.out.println("i = " + i);}}
}

代码运行结果:

i = 1
i = 2

代码分析:

  • 在循环体中使用if条件判断,当i等于3时,执行break语句退出循环。
  • 因此,循环体只会执行两次,输出结果为1和2。

4.2 continue语句

continue语句用于跳过当前循环迭代,继续执行下一次循环迭代。

示例代码:

public class ContinueStatementExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i == 3) {continue;}System.out.println("i = " + i);}}
}

代码运行结果:

i = 1
i = 2
i = 4
i = 5

代码分析:

  • 在循环体中使用if条件判断,当i等于3时,执行continue语句跳过当前循环迭代。
  • 因此,循环体不会执行输出语句,输出结果为1、2、4、5。

5. 实践与练习

在学习完流程控制和循环控制后,可以尝试以下练习并进行实践:

  1. 编写一个程序,使用循环语句输出1到100之间所有的偶数。
  2. 编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
  3. 编写一个程序,使用循环语句计算阶乘并输出结果。提示:阶乘是指从1乘到给定的数,如4的阶乘为1 x 2 x 3 x 4 = 24。

可以通过编写代码实现以上练习,并运行程序查看结果。

  1. 编写一个程序,使用循环语句输出1到100之间所有的偶数。
for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {System.out.println(i);}
}

代码分析:
以上代码使用for循环,从1到100遍历所有数字,通过判断i是否能被2整除来判断是否为偶数,如果是偶数则输出。

  1. 编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
int sum = 0;
for (int i = 1; i <= 10; i++) {sum += i;
}System.out.println("1到10的和为: " + sum);

代码分析:
以上代码使用for循环,从1到10遍历所有整数,将每个整数累加到变量sum中,最后输出sum的值。

  1. 编写一个程序,使用循环语句计算阶乘并输出结果。
int n = 4;  // 计算4的阶乘
int factorial = 1;for (int i = 1; i <= n; i++) {factorial *= i;
}System.out.println(n + "的阶乘为: " + factorial);

代码分析:
以上代码使用for循环,从1到给定的数n遍历,将每个数字相乘并赋值给变量factorial,最后输出factorial的值作为阶乘的结果。在这个例子中,计算的是4的阶乘。

http://www.lryc.cn/news/95607.html

相关文章:

  • ChatGPT是否能够进行情感融合和语气调整?
  • C++--动态规划路径问题
  • 从实践彻底掌握MySQL的主从复制
  • 机器学习深度学习——线性回归的基本元素
  • K8S初级入门系列之八-网络
  • 分段@Transactional 坑及失效问题
  • 25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)
  • 点云拟合球体
  • 基于动态规划(DP)算法的增程式EV能量管理策略研究(MATLAB编程)
  • 前端知识点视频补充
  • python多线程—终止子线程
  • #P1012. [NOIP2015提高组] 神奇的幻方
  • (学习笔记-IP)Ping的工作原理
  • php 进程间通信:管道、uds
  • Stable Diffusion如何生成高质量的图-prompt写法介绍
  • MySQL 高级SQL语句(一)
  • SkyWalking链路追踪-技术文档首页
  • AndroidStudio Memory profiler(内存分析器)
  • 【C++模板进阶】
  • (一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理
  • JetBrains全家桶:如何自定义实现类TODO注释?
  • 【技术干货】工业级BLE5.2蓝牙模块SKB378 使用教程,AT指令集
  • 零基础深度学习——学习笔记1 (逻辑回归)
  • I want to know on what switchport is connected my computer (10.8.0.2)
  • OpenCv之人脸操作
  • C++[第五章]--指针和引用
  • 用i18next使你的应用国际化-React
  • TSN -促进IT/OT 融合的网络技术
  • 改进的北方苍鹰算法优化BP神经网络---回归+分类两种案例
  • 等保工作如何和企业创新业务发展相结合,实现“安全”和“创新”的火花碰撞?