Lazy loaded image
编程
📗Day03-流程控制语句(顺序、选择 、循环)
字数 2677阅读时长 7 分钟
2019-1-15
2025-8-13
type
status
date
slug
summary
tags
category
icon
password

语句结构

  1. 顺序结构: 代码从上到下依次执行
  1. 分支结构: 满足某个条件才执行某段代码。 if语句 / if...else语句 / if...else if...else if...else 语句 /switch...case语句
  1. 循环结构: 不断的执行某段代码,直到判断条件不满足为止 while语句 / do...while语句 / for语句

if语句

if (判断条件) {条件成立时执行的代码!} else {当 if 里的判断条件不成立时执行的代码} 判断条件必须是布尔类型的值,如果 if或者else的大括号里,只有一行代码, {} 可以省略,不建议省略大括号

三元运算符

(条件表达式)?表达式1:表达式2;
  1. 条件表达式的结果是boolean类型
  1. 根据条件表达式真或假,决定执行表达式1,或者表达式2,
  1. 三元运算符可以嵌套使用
  1. 凡是能用三目运算符的,都可以改用if else,反之不成立,如果程序既可以使用三元运算符,又可以使用ifelse,优先使用三元运算符

if...else if 语句

  1. else结构是可选的
  1. 针对条件表达式
    1. 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓
    2. 如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面
    3. 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了
  1. if-else结构是可以相互嵌套的
  1. 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议省略。

switch case语句

  1. 根据switch表达式中的值,一次匹配各个case中的常量,一旦匹配成功,则进入相应的case结构中,调用其执行语句
  1. 当调用完执行语句之后,则仍然继续向下执行其他case结构中的执行语句,直到执行结束或者遇到其他结构的break语句
  1. break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出swtich-case结构
  1. switch结构中表达式,支持char/byte/short/int/Character/Byte/Short/Integer/String/Enum,不能使用long类型的
  1. case之后只能声明常量,不能声明范围
  1. break关键字是可选的,需要根据实际情况决定是否添加
  1. default相当于if-else结构中的else,都是可选的,defalut的可以写在上面,但是需要加break,通常写在最后,在最后的时候,不用添加break
  1. 如果switch-case结构中的多个case执行语句相同,可以考虑进行合并

switch case对比if语句

凡是可以使用switch-case的,都可以转换成if-else,反之不成立。 既可以使用switch,又可以使用if-else的时候,我们优先选择使用switch-case,原因是这个执行效率更高

循环结构四要素

  1. 初始化条件
  1. 循环条件,需要时boolean类型(循环结束通常都是因为条件中返回false了)
  1. 循环体
  1. 迭代条件

三种循环结构

  1. while循环结构
  1. do while循环结构
  1. for 循环结构

while语句

while(判断条件) { 条件成立时执行的代码 }

do while语句

do { 循环体代码 }while(判断条件);

do while和while的区别

  1. do-while循环至少会执行一次循环体!
  1. 开发中,使用for和while更多一些。较少使用do-while

for循环和while循环的区别

  1. 开发中,基本上我们都会从for、while中进行选择,实现循环结构
  1. for循环和while循环是可以相互转换的,for循环和while循环的初始化条件部分的作用范围不同。
  1. 我们写程序,要避免出现死循环

无限循环

while(true) 或 for(;;)

如何结束一个循环结构

  1. 当循环条件是false时
  1. 在循环体中,执行break

嵌套循环

将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
  1. 内层循环结构遍历一遍,只相当于外层循环循环体执行了一次
  1. 假设外层循环需要执行m次,内层循环需要执行n次。此时内层循环的循环体一共执行了m * n次
  1. 外层循环控制行数,内层循环控制列数

break和contine

break 可以用于 循环语句和switch...case语句,用在 switch...case里,可以用来结束 switch...case; 用在循环语句里,用来结束循环
continue 只能用于循环语句,表示结束本轮循环,开始下一轮循环
break 和 continue后面不能声明执行语句,因为都无法执行到

循环语句的练习

判断一个数是否是质数

衡量功能代码的优劣

  1. 正确性
  1. 可读性
  1. 健壮性
  1. 高效率和低存储:时间复杂度、空间复杂度

质数判断优化版

从键盘中获取变量Scanner

  1. 导包:import java.util.Scanner;
  1. Scanner的实例化:Scanner scan = new Scanner(System.in);
  1. 调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
  1. 注意事项:需要根据相应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常InputMisMatchException,导致程序终止
上一篇
Day02-类型转换和运算符
下一篇
Day04-流程控制语句(嵌套、递归、习题)