目录
思维导图
分支语句
流程控制
1.1 分类
1.2 顺序结构
1.3 分支结构
1.3.1 if语句
1.3.2 switch语句
1.4 循环结构
1.4.1 for循环语句
1.4.2 while循环语句
1.5 三种循环的区别
1.6 跳转控制语句
1.6.1 概述
1.7 循环嵌套
1.8 Random
思维导图
分支语句
流程控制
1.1 分类
1.1 分类
顺序结构
分支结构(if,switch)
循环结构(for,while,do...while)
1.2 顺序结构
按照代码先后顺序,依次执行
执行流程图:
1.3 分支结构
1.3.1 if语句
格式1:
if(关系表达式){
语句体;
}
执行流程:
1 首先计算关系表达式的值
2 如果关系表达式的值为true就执行语句体
3 如果关系表达式为的值false就不执行语句体
4 继续执行后面的语句内容
例:
int a = 2;
int b = 3;
if(a>b){
System.out.println("a大于b");
}
System.out.println("end");
格式2:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
1 首先计算关系表达式的值
2 如果关系表达式的值为true就执行语句体1
3 如果关系表达式的值为false就执行语句体2
4 继续执行后面的语句内容
例:
int a = 2;
int b = 3;
if(a>b){
System.out.println("a大于b");
}else{
System.out.println("a小于b");
}
System.out.print("end");
执行流程图:
案例:判断一个数是奇数还是偶数
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n%2 == 0){
System.out.println("n是一个偶数");
}else{
System.out.println("n是一个奇数");
}
格式3:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
...
else{
语句体n+1;
}
执行流程:
1 首先计算关系表达式1的值
2 如果关系表达式的值为true就执行语句体1,如果值为false就计算关系表达式2的值
3 如果关系表达式的值为true就执行语句体2,如果值为false就计算关系表达式3的值
4 .....
5 如果没有任何关系表达式为true,就执行语句体n+1
例:
System.out.println("开始");
//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
if(week == 1) {
System.out.println("星期一");
} else if(week == 2) {
System.out.println("星期二");
} else if(week == 3) {
System.out.println("星期三");
} else if(week == 4) {
System.out.println("星期四");
} else if(week == 5) {
System.out.println("星期五");
} else if(week == 6) {
System.out.println("星期六");
} else {
System.out.println("星期日");
}
System.out.println("结束");
}
执行流程图:
1.3.2 switch语句
格式:
switch(表达式){
case 值1:
语句体1;break;
case 值2:
语句体2;break;
...
default:
语句体n+1;break;
}
格式说明:
表达式:取值为byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String
case:后面跟着的是要和表达式做比较的值
break:表示中断、结束的意思,用来结束switch语句
default:所有情况不匹配时,执行此处内容,此处的break可以省略
执行流程:
1 首先计算表达式的值
2 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,执行过程中,遇到break执行就会结束
3 如果所有的case后面的值和表达式都不匹配,则执行default里面的语句体,然后结束程序
流程图:
在switch语句中,如果case后面的语句体不写break,将会出现穿透现象,在不判断下一个case值得情况下,继续向下运行,直到遇见break,或者整体switch语句结束
1.4 循环结构
1.4.1 for循环语句
循环结构的组成:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
循环结构对应的语法:
初始化语句: 这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如:a<3
循环体语句: 这里可以是任意语句,这些语句将反复执行
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作
格式:
for (初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
执行流程:
1 执行初始化语句
2 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是false,继续执行
3 执行循环体语句
4 执行条件控制语句
5 回到2继续
例:输出五条HelloWorld语句
for(int i=1; i<=5; i++){
System.out.println("HelloWorld");
}
执行流程图:
1.4.2 while循环语句
基本格式:
while(条件判断语句){
循环体语句;
}
完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
1 执行初始化语句
2 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是false,继续执行
3 执行循环体语句
4 执行条件控制语句
5 回到2继续
注:while循环和for循环是可以等价转换的
例:珠穆朗玛峰
int count = 0;
double paper = 0.1;
int zf = 8844430;
while(paper <= zf){
paper *= 2;
count++;
}
System.out.println(count);
}
执行流程:
1.4.3 do...while循环语句
基本格式
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
1 执行初始化语句
2 执行循环体语句
3 执行条件控制语句
4 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是false,继续执行
5 回到2继续
执行流程图:
1.5 三种循环的区别
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断
for和while循环的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环格式
//for循环
for(;;){}
//while循环
while(true){}
//do...while循环
do{}while(true)
1.6 跳转控制语句
1.6.1 概述
1 continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
2 break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
1.7 循环嵌套
语句结构:
1 顺序语句:以分号结尾,表示一句话的结束
2 分支语句:一对大括号表示if的整体结构,整体描述一个完整的if语句
一对大括号表示switch的整体结构,整体描述一个完整的switch语句
3 循环语句:一对大括号表示for的整体结构,整体描述一个完整的for语句
一对大括号表示while的整体结构,整体描述一个完整的while语句
do..while以分号结尾,整体描述一个完整的do..while语句
任何语句对外都可以看成是一句话,一句代码 分支语句中包含分支语句称为分支嵌套 循环语句中包含循环语句称为循环嵌套
例:
for(int hour=0; hour<24; hour++) {
for(int minute=0; minute<60; minute++) {
System.out.println(hour + "时" + minute + "分");
}
System.out.println("--------");
}
1.8 Random
作用:产生一个随机数
基本步骤:
1 导包
import java.util.Random;
2 创建对象
Random r = new Random();
3 取随机数
int n = r.nextInt(10); //获取数据的范围[0,10),包括0,不包括10
例:猜数字
Scanner sc = new Scanner(System.in);
Random r = new Random();
int number = r.nextInt(100) + 1;
while(true){
System.out.println("请输入你要猜的数字:");
int i = sc.nextInt();
if(i < number){
System.out.println("你猜的数字" + i + "小了");
}else if(i > number){
System.out.println("你猜的数字" + i + "大了");
}else{
System.out.println("恭喜你!猜中了");
break;
}
}



