type
status
date
slug
summary
tags
category
icon
password
语句结构
- 顺序结构: 代码从上到下依次执行
- 分支结构: 满足某个条件才执行某段代码。 if语句 / if...else语句 / if...else if...else if...else 语句 /switch...case语句
- 循环结构: 不断的执行某段代码,直到判断条件不满足为止 while语句 / do...while语句 / for语句
if语句
if (判断条件) {条件成立时执行的代码!}
else {当 if 里的判断条件不成立时执行的代码}
判断条件必须是布尔类型的值,如果 if或者else的大括号里,只有一行代码, {} 可以省略,不建议省略大括号
三元运算符
(条件表达式)?表达式1:表达式2;
- 条件表达式的结果是boolean类型
- 根据条件表达式真或假,决定执行表达式1,或者表达式2,
- 三元运算符可以嵌套使用
- 凡是能用三目运算符的,都可以改用if else,反之不成立,如果程序既可以使用三元运算符,又可以使用ifelse,优先使用三元运算符
if...else if 语句
- else结构是可选的
- 针对条件表达式
- 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓
- 如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面
- 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了
- if-else结构是可以相互嵌套的
- 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议省略。
switch case语句
- 根据switch表达式中的值,一次匹配各个case中的常量,一旦匹配成功,则进入相应的case结构中,调用其执行语句
- 当调用完执行语句之后,则仍然继续向下执行其他case结构中的执行语句,直到执行结束或者遇到其他结构的break语句
- break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出swtich-case结构
- switch结构中表达式,支持char/byte/short/int/Character/Byte/Short/Integer/String/Enum,不能使用long类型的
- case之后只能声明常量,不能声明范围
- break关键字是可选的,需要根据实际情况决定是否添加
- default相当于if-else结构中的else,都是可选的,defalut的可以写在上面,但是需要加break,通常写在最后,在最后的时候,不用添加break
- 如果switch-case结构中的多个case执行语句相同,可以考虑进行合并
switch case对比if语句
凡是可以使用switch-case的,都可以转换成if-else,反之不成立。
既可以使用switch,又可以使用if-else的时候,我们优先选择使用switch-case,原因是这个执行效率更高
循环结构四要素
- 初始化条件
- 循环条件,需要时boolean类型(循环结束通常都是因为条件中返回false了)
- 循环体
- 迭代条件
三种循环结构
- while循环结构
- do while循环结构
- for 循环结构
while语句
while(判断条件) {
条件成立时执行的代码
}
do while语句
do {
循环体代码
}while(判断条件);
do while和while的区别
- do-while循环至少会执行一次循环体!
- 开发中,使用for和while更多一些。较少使用do-while
for循环和while循环的区别
- 开发中,基本上我们都会从for、while中进行选择,实现循环结构
- for循环和while循环是可以相互转换的,for循环和while循环的初始化条件部分的作用范围不同。
- 我们写程序,要避免出现死循环
无限循环
while(true) 或 for(;;)
如何结束一个循环结构
- 当循环条件是false时
- 在循环体中,执行break
嵌套循环
将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
- 内层循环结构遍历一遍,只相当于外层循环循环体执行了一次
- 假设外层循环需要执行m次,内层循环需要执行n次。此时内层循环的循环体一共执行了m * n次
- 外层循环控制行数,内层循环控制列数
break和contine
break 可以用于 循环语句和switch...case语句,用在 switch...case里,可以用来结束 switch...case;
用在循环语句里,用来结束循环
continue 只能用于循环语句,表示结束本轮循环,开始下一轮循环
break 和 continue后面不能声明执行语句,因为都无法执行到
循环语句的练习
判断一个数是否是质数
衡量功能代码的优劣
- 正确性
- 可读性
- 健壮性
- 高效率和低存储:时间复杂度、空间复杂度
质数判断优化版
从键盘中获取变量Scanner
- 导包:import java.util.Scanner;
- Scanner的实例化:Scanner scan = new Scanner(System.in);
- 调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
- 注意事项:需要根据相应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常InputMisMatchException,导致程序终止
- 作者:tacjin
- 链接:http://jin.wiki/article/ecb03c65-7f00-48a5-85e2-965818b84450
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。