一.选择结构语句
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n+1;
[break;]
}
2.执行流程
-
首先执行表达式
-
拿着表达式的值依次跟case后面的值进行比较,如果有匹配的就执行相应的语句体; 遇到break就结束整个switch语句
-
如果都没有匹配的值,就会执行default中的语句体n+1
3.switch语句的注意事项
A:多个case后面的值是不可以重复的,如果一旦有重复的值,就没办法使用的是哪一个.
B:switch()中可以给出的数据类型有?基本数据类型: byte short int char 引用数据类型: String 枚举
C. default语句一定要放在最后的位置吗?
不一定,执行流程跟default语句放的位置没有什么关系
D. break语句可以省略吗?
可以省略 , 但是出现case穿透的效果.
switch语句的结束条件是- break;
- 走到最后一个{} 结束了
switch使用前提 - 有一些是固定值,这个值还不能多,就考虑使用switch
案例:输入月份判断季节
import java.util.Scanner;
public class Switch {
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
System.out.println("请输入月份!");
int shuru = sc.nextInt();
switch(shuru) {
case 3 :
case 4 :
case 5 :
System.out.println("你输入的月份"+shuru+"为春季!");
break;
case 6:
case 7:
case 8:
System.out.println("你输入的月份"+shuru+"为夏季!");
break;
case 9:
case 10:
case 11:
System.out.println("你输入的月份"+shuru+"为秋季!");
break;
case 12:
case 1:
case 2:
System.out.println("你输入的月份"+shuru+"为冬季!");
break;
default:
System.out.println("你输入的月份有误!!!");
}
}
}
二.循环结构
循环有那几块内容:
* 初始化语句 当做是定义一个变量 这个值是什么 int i = 1; int i = 0; int i = 10
* 条件判断语句 控制循环是否执行
* 循环体 重复做的某一件事情
* 条件控制语句 i++ i-- i+=2 i *=2
1.for循环结构:
格式:
for(初始化语句;条件判断语句; 条件控制语句){
循环体
}
- 执行流程:
* 1. 首先执行初始化语句
* 2. 执行条件判断语句
true: 执行循环体
false: 结束for循环
* 3. 执行循环体
* 4. 执行条件控制语句
* 5. 回到第二步继续判断,直到for循环结束.
案例一: 输出数据
public static void main(String[] args) {
for(int i = 1 ; i <= 5 ; i++){
System.out.println(i);
}
for(int i = 5 ; i >= 1 ; i--){
System.out.println(i);
}
}
案例二: 求和
public static void main(String[] args) {
// 求和思想
int sum = 0;
// 0 + 1 + 2 + 3 + 4 + 5
for(int i = 1 ; i <= 5 ; i++){
// sum += i;
sum = sum + i;// 0 + 1;
}
System.out.println(sum);
}
案例三: 求偶数和
public static void main(String[] args) {
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
// 求偶数和
if(i % 2 == 0){
// 相加
sum += i;
}
}
System.out.println(sum);
}
案例四: 水仙花
public class ForDemo05{
public static void main(String[] args) {
for(int i = 100 ; i <= 999 ; i++){
// 对i进行获取 个位 十位 百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
// 水仙花数的特点: 每一位上立方和等于本身
if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
System.out.println(i);
}
}
}
}
2:while循环结构:
格式:
初始化语句;
while(条件判断语句){
循环体;
条件控制语句;
}
执行流程:
* 1. 首先执行初始化语句
* 2. 执行条件判断语句
true: 执行循环体
false: 结束while循环
* 3. 执行循环体
* 4. 执行条件控制语句
-
- 回到第二步继续判断,直到while循环结束
案例:珠穆朗玛峰
- 回到第二步继续判断,直到while循环结束
public class WhileDemo01{
public static void main(String[] args) {
// 定义变量 统计叠了多少次
int count = 0;
// 定义纸的厚度
double hou = 0.1;
// 定义珠穆朗玛峰的高度
int height = 8844430;
// 叠多少次,能叠到珠穆朗玛峰的高度
// 叠到什么时候,就不叠了
while(hou <= height){
hou *= 2;
count++;
}
System.out.println(count);
System.out.println(hou);
}
}
3:do…while循环结构
格式:
初始化语句
do{
循环体
条件控制语句
}while(条件判断语句);
执行流程:
- 首先执行初始化语句
- 执行循环体
- 执行条件控制语句
- 执行条件判断语句
true: 执行循环体
false: 结束do…while循环 - 回到第二步继续判断,直到do…while循环结束
三.三种循环之间的区别:
1:do…while循环的与for循环和while循环的最大区别是什么?
2:for循环和while循环在有什么区别?
总结:
1.do…while: 不管条件是否满足,至少会先执行一次
for和while循环:先判断条件,如果条件满足就会执行循环,反之一次都不执行
2.最大区别是在于初始化语句的作用域
for循环:初始化语句在for循环中()中,只能是在for循环{}中使用,出了{}就不能在使用了
while循环:初始化语句在方法内的,这个初始化语句在方法内任意的位置都可以使用,出了这个方法就不能使用了
3.死循环:
for(;;){}
for(int i = 0;;i++){
}
for(int i = 0 ; i <= 5;){
}
while(true){
}
四、控制循环语句
1:break语句
break: 终止
作用: 用来终止循环的
使用场景:
* switch语句中
* 循环中: for while do...while
2:continue 语句
作用: 跳过本次循环,继续下一次循环
使用场景:
* 循环中: for while do...while
注意事项:控制循环语句,脱离使用场景,没有任何意义!
continue 用来跳过判断语句进行下一次判断;
break 直接终止循环
五、循环嵌套
格式:
for(){
for(){
}
}
for(){
while(){
}
}
while(){
for(){
}
}
循环嵌套的思想:
外循环执行一次,内循环执行n次
六、Random 随机数
Random随机数使用步骤?
* 导包
import java.util.Random
* 创建Random对象:
Random r = new Random();
* 随机数据
nextInt(int n);
int num = nextInt(100);
// 随机的范围是[0,100)
int num = nextInt(100)+1;// 随机的范围是[0,99]+1 -->[1,100]
随机数范围 (最大数-最小shu+1)+最小;
案例: 猜数字
import java.util.Scanner;
import java.util.Random;
public class Zuoye{
public static void main(String[] args) {
Random r=new Random();
int suiji = r.nextInt(100)+1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
while(true) {
int shuru = sc.nextInt();
if (shuru > suiji) {
System.out.println("你输入的数字大于它");
} else if (shuru < suiji) {
System.out.println("你输入的数字小于它");
} else {
System.out.println("你猜对了");
break;
}
}
System.out.println("奖励棒棒糖!");
}
}