程序设计中规定的三种流程结构
- 顺序结构
- 程序从上到下逐行执行 , 中间没有任何判断和跳转
- 分支结构
- 根据条件 , 选择地执行某段代码
- 有
if...else
和switch-case
两种分支语句
- 循环结构
- 根据循环条件 , 重复的执行某段代码
- 有
for , while , do-while
三种循环语句 - 补充:JDK5.0 提供了
foreach
循环,方便的遍历集合、数组元素。
1. 循环结构
语句从上到下逐行执行
2. 分支语句
2.1 if - else 条件判断结构
格式:
代码语言:javascript复制if(条件表达式) {
语句块;
}
单分支条件判断 : if
说明: 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)或布尔变量
执行流程
- 首先判断条件表达式看其结果是true还是false
- 如果是true就执行语句块
- 如果是false就不执行语句块
双分支条件判断 :if ... else
格式:
代码语言:javascript复制if(条件表达式) {
语句块1;
} else {
语句块2;
}
多分支条件判断 : if...else if...lese
代码语言:javascript复制if (条件表达式1) {
语句块1;
} else if (条件表达式2) {
语句块2;
}
...
}else if (条件表达式n) {
语句块n;
} else {
语句块n 1;
}
说明:
一旦条件表达式为true,则进入执行相应的语句块。执行完对应的语句块之后,就跳出当前结构。
if...else嵌套
在 if 的语句块中,或者是在else语句块中,又包含了另外一个条件判断(可以是单分支、双分支、多分支),就构成了嵌套结构
。
执行特点:
(1)如果是嵌套在if语句块中的,只有当外部的if条件满足,才会去判断内部的条件
(2)如果是嵌套在else语句块中的,只有当外部的if条件不满足,进入else后,才会去判断内部的条件
2.2 switch-case选择结构
语法格式:
代码语言:javascript复制switch(表达式){
case 常量值1:
语句块1;
//break;
case 常量值2:
语句块2;
//break;
// ...
[default:
语句块n 1;
break;
]
}
执行流程
执行过程
第1步:根据switch中表达式的值,依次匹配各个case。如果表达式的值等于某个case中的常量值,则执行对应case中的执行语句。
第2步:执行完此case的执行语句以后
- 情况1:如果遇到break,则执行break并跳出当前的switch-case结构
- 情况2:如果没有遇到break,则会继续执行当前case之后的其它case中的执行语句。--->case穿透
- ......
- 直到遇到break关键字或执行完所有的case及default的执行语句,跳出当前的switch-case结构
使用注意点:
- switch(表达式)中表达式的值必须是这几种类型 : byte , short , char , int , 枚举(JDK 5.0) , String(JDK 7.0)
- case子句中的值必须是敞亮 , 所有case子句中的敞亮相互不相同
- 同一个switch语句 , 所有case子句中的敞亮值互不相同
- break语句用来执行完一个case分支后使程序跳出swtich语句块 , 如果没有break , 程序会顺序执行到switch结尾
- default子句是可选的 , 同时 , 位置也是灵活的 , 当没有匹配的case时 , 执行default语句
3. 循环语句
- 理解:循环语句具有在
某些条件
满足的情况下,反复执行
特定代码的功能。 - 循环结构分类
- for 循环
- while 循环
- do -while 循环
- 循环结构四要素
- 初始化部分
- 循环条件部分
- 循环体部分
- 迭代部分
3.1 for循环
语法格式
代码语言:javascript复制for(初始化部分 ; 循环条件部分 ; 迭代部分) {
循环体部分
}
说明:
- for(;;)中的两个;不能多也不能少
- ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
- ②循环条件部分为boolean类型表达式,当值为false时,退出循环
- ④可以有多个变量更新,用逗号分隔
3.2 while循环
语法格式 : 先判断再执行
代码语言:javascript复制初始化部分
while(循环条件部分) {
循环体部分;
迭代部分;
}
3.3 do-while 循环
语法格式 : 先执行再判断
代码语言:javascript复制初始化部分;
do {
循环体部分;
迭代部分;
}
4. 关键字break 和 continue的使用
代码语言:javascript复制 适用范围 在循环结构中使用的作用 相同点
break switch-case
循环结构 一旦执行,就结束(或跳出)当前循环结构 此关键字的后面,不能声明语句
continue 循环结构 一旦执行,就结束(或跳出)当次循环结构 此关键字的后面,不能声明语句
此外,很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它,但使程序容易出错。Java中的break和continue是不同于goto的。
5. Scanner : 键盘输入功能的实现
键盘输入代码的四个步骤
- 导包
- 创建Scanner类型的对象
- 调用Scanner类的相关方法
- 释放资源
注意 : 需要根据相应的方法 , 来输入指定类型的值 , 入股输入的数据类型与要求的类型不匹配时 , 会报异常导致程序终止
键盘录入基本代码演示:
代码语言:javascript复制 // 键盘录入
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
System.out.println("你输入的数据为:" nextLine);
scanner.close();
6. 如何获取一个随机数
1、Math类的random()的调用,会返回一个[0,1)范围的一个double型值
2、Math.random() * 100 ---> [0,100) ** (int)(Math.random() * 100)** ---> [0,99] ** (int)(Math.random() * 100) 5 ----> [5,104]**
3、如何获取[a,b]
范围内的随机整数呢?(int)(Math.random() * (b - a 1)) a
// 随机数获取
double random = Math.random();
System.out.println(random);
int number = (int) (Math.random() * 6) 1;
System.out.println(number);