1.分支
2.循环
1.分支结构
生活中分支:双向选择。如果走到十字路口。你有几种选择
程序中分支:就是一种选择
1.1if结构
语法格式
if (条件) {
语句体
}
条件:必须是boolean类型的数据
执行流程:当程序运行到if结构的时候,首先判断if小括号里面的条件,如果为true执行语句体。如果为false,跳过语句体,执行下面的代码。
package com.qfedu.app;
/**
* 这个是if分支结构的代码
*/
public class Demo5 {
public static void main(String[] args) {
int money = 10;
if (money > 12) {
System.out.println("买个兰博基尼");
}
System.out.println("程序结束");
}
}
1.2if-else结构
语法格式:
if (条件) {
语句体1
} else {
语句体2
}
执行流程:当程序运行到if-else结构的时候,首先判断小括号里面的条件,如果为真,就执行语句体1。如果为假的话就执行语句体2
package com.qfedu.app;
/**
* if-else结构的代码
*/
public class Demo6 {
public static void main(String[] args) {
int a = 10;
if (a >= 10) {
System.out.println("今天中吃顿好的,泡面");
} else {
System.out.println("西北风各种风");
}
System.out.println("呵呵哒");
}
}
1.3if-else-if结构
语法格式:
if (条件1) {
语句体1
} else if (条件2) {
语句体2
} else if(条件3) {
语句体3
} else if (条件4) {
语句体4
}else {
语句体5
}
执行流程:
当程序运行到if-else if 之后,匹配if 之后的所有的条件。如果匹配为真,就是输出当前的语句体s
package com.qfedu.app;
/**
* 这个是if-else-if 的代码
*/
public class Demo7 {
public static void main(String[] args) {
/*
* 学生的成绩:
* 90-100 打印 秀儿
* 80-90 打印 良好
* 70-80 打印 一般
* 60-70 打印 及格
* 60以下 打印 耗子尾汁
*
* */
int score = 90;
if (score >= 90 && score <= 100) {
System.out.println("秀儿");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("一般");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("耗子尾汁");
}
}
}
1.4switch-case分支
语法格式:
switch(条件匹配) {
case 常量:
语句1;
break;
case 常量:
语句2;
break;
case 常量:
语句3;
break;
default:
语句4;
break;
}
执行流程:当程序运行到了switch,后面的小括号的变量的值,去匹配case后面的常量。如果匹配上了就是当前语句。如果匹配不上的话,就接着匹配,直到匹配完所有的常量。如果发现都没有匹配上,就执行default下面的语句
break:打断!!!
2.循环结构
2.1为什么要使用循环结构
在代码中如果出现了大量的重复的功能。可以使用cv大法。可以解决的,但是会出现一些问题:
1.代码过于臃肿
2.代码的阅读性极差
3.代码维护极差
2.2while循环
语法格式:
while (循环条件的判断){
循环体
}
执行流程:代码执行到了while以后。首先判断while 之后的小括号里面的循环条件是否为true。如果为true的话就继续执行
循环体。直到小括号里面的条件为false的时候,结束循环了。
package com.qfedu.app;
/**
*
*/
public class Demo12 {
public static void main(String[] args) {
//打印出来10行吃饭睡觉 打豆豆
/*
* 当 num = 10 10 >0 true 输出第一次 num自身减1 num =9
*当 num = 9 9>0 true 输出第二次 num自身减1 num=8
*当num = 8 8> 0 true 输出第三次 num自身减1 num=7
* .....
*当num = 1 1>0 true 输出第10次 num 自身减1 num = 0
* 当num = 0 0>0 false 结束循环
* */
//一个循环最起码有三个条件:初始值,终止条件,循环条件
int num = 10;
while (num > 0 ) {
System.out.println("吃饭,睡觉,打豆豆");
num--;
}
}
}
2.3do-while循环
语法格式:
do {
循环体
} while(循环条件);
执行流程:程序运行到do-while的时候,首先要执行do后面大括号里面循环体。然后再判断while后面小括号里面的条件。如果条件为false。循环结束了,就会打印一次循环体。如果条件为true的话,就继续执行do后面大括号里面的循环体。
package com.qfedu.app;
public class Demo13 {
public static void main(String[] args) {
//还打印吃饭睡觉 打豆豆
/*
* 打印了第一次 吃饭睡觉打豆豆 num自身减1 9>0 true
* 打印了第二次 吃饭睡觉打豆豆 num自身减1 8>0 true
* 打印了第三次 吃饭睡觉打豆豆 num自身减1 7>0 true
* ......
* 打印第9次吃饭睡觉打豆豆 num 自身减1 1>0 true
* 打印第10次吃饭睡觉打豆豆 num 自身减1 0>0 false 结束循环
* */
int num = 10;
do {
System.out.println("吃饭睡觉打豆豆");
num--;
} while(num > 0);
}
}
while循环直接判断条件,如果条件判断不成立,就不执行。do-while先执行一次。然后再判断条件是否成立。
以后开发中只用while
2.4for循环
语法格式:
for(条件1;条件2;条件3) {
语句体
}
执行流程:首先执行条件1,再执行条件2。条件2是一个返回值布尔类型的表达式。如果条件2为true,就执行语句体。
然后再执行条件3。这样循环下去,直到条件2为false.
package com.qfedu.app;
public class Demo14 {
public static void main(String[] args) {
/*
* int i = 0 声明了一个i变量 条件1
* i< 10 终止条件 条件2
* i++ 循环条件 条件3
*
*
* 当i = 0(第一个条件) 0<10(第二个条件) true 打印一次吃饭睡觉打豆豆 (语句体) 再看第三个条件 i自身加1 i=1
* 当i = 1 1<10 true 打印一次吃饭睡觉打豆豆 再看第三个条件 i自身加1 i=2
* 当i = 2 2<10 true 打印一次吃饭睡觉打豆豆 再看第三个条件 i自身加1 i=3
*
*.......
* 当i = 8 8<10 true 打印一次吃饭睡觉打豆豆 再看第三个条件 i自身加1 i=9
* 当i = 9 9<10 true 打印一次吃饭睡觉打豆豆 再看第三个条件 i自身加1 i=10
* 当i = 10 10 < 10 false 终止
* */
for(int i = 0; i < 10; i++) {
System.out.println("吃饭睡觉打豆豆");
}
}
}
作业
1.打印100以内的偶数
2.打印100以内的奇数
3.100以内的逢7过
4.打印99乘法表
今天的案例都必须敲上3遍以上
金山打字
补充知识点
Scanner的使用(以后不用!!!)
代码中需要用户修改数据,从而满足其他的需求。但是我们不能要求用户修改代码。重新编译,重现执行
需要在代码中提供给用户一个输入数据的方式:
1.技能点(导包)
在class 之前
import java.util.Scanner
2.创建一个scanner的一个"变量"
Scanner scanner = new Scanner(System.in);
3.使用scanner扫描器一些方法。从键盘上面获取你输入的数据;
获取int类型数据 int num = scanner.nextInt();
获取float类型数据 float num = scanner.nextFloat();
获取double类型的数据 double num = scanner.nextDouble();
获取char类型的数据 char ch = scanner.nextLine().charAt(0);
package com.qfedu.app;
//导包
import java.util.Scanner;
//是java封装好的一个类。类的作用就是控制台的输入
public class Demo8 {
public static void main(String[] args) {
int score = 0;
//1.创建一个Scanner的对象
Scanner scanner = new Scanner(System.in);
System.out.println("亲!请输入一个学生的成绩");
//2.从键盘获取一个数据,并把这个数据赋值给score
score = scanner.nextInt();
//3.用户输入的数据的合法性
if (score < 0 || score > 100) {
System.out.println("亲,您输入的数据不合法!!!");
//退出程序
System.exit(0);
}
if (score >= 90 && score <= 100) {
System.out.println("秀儿");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("一般");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("耗子尾汁");
}
}
}