第三天
switch 语句格式和说明
格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
.......
default:
语句体n+1;
break;
}
格式说明:
表达式:(将要被匹配得值)取值为byte,int,short,JDK5以后可以是枚举,JDK7以后可以是String.
case:后面跟得是要和表达式进行比较得值(被匹配得值)。
break:表述中断,结束得意思,用来结束switch语句
default:表示所有情况都不匹配得时候,就执行该处得内容,和上一天说的if语句得else相似
执行流程:
首先计算表达式得值
依次和case后边的值进行比较,如果有对应得值,就会执行相应得语句,在执行过程中,遇到break就会结束
如果所有得case后面得值和表达式得值都不匹配,就会执行default里面得语句,然后结束掉
案例
需求 输入对应得值,显示星期几,若无对于,输出您输入得有误
代码:
Scanner sc= new Scanner(System.in);
System.out.println("请输入星期数");
int a =sc.nextInt();
switch (a){
case 1:
System.out.println("今天星期一");
break;
case 2:
System.out.println("今天星期二");
break;
case 3:
System.out.println("今天星期三");
break;
case 4:
System.out.println("今天星期四");
break;
case 5:
System.out.println("今天星期五");
break;
case 6:
System.out.println("今天星期六");
break;
case 7:
System.out.println("今天星期天");
break;
default:
System.out.println("n您输入得有误,请重新输入");
}
注意事项:case后边给出的值不允许重复
case后的值只能是常量,不能是变量
switch 穿透
现象:当开始case穿透,后续得case就不会具有执行匹配得效果,内部得语句都会被执行,知道看见case或者将整体得switch语句执行完毕才会结束
case穿透是如何产生得:
如果switch语句中,case省略了break语句,就会开始case穿透
代码:
Scanner sc= new Scanner(System.in);
System.out.println("请输入星期数");
int a =sc.nextInt();
switch (a){
case 1:
System.out.println("工作日");
case 2:
System.out.println("工作日");
case 3:
System.out.println("工作日");
case 4:
System.out.println("工作日");
case 5:
System.out.println("工作日");
break;
case 6:
System.out.println("休息日");
case 7:
System.out.println("休息日");
break;
default:
System.out.println("n您输入得有误,请重新输入");
}
缺点:代码臃肿,具有重复代码
代码优化:减少内存
Scanner sc= new Scanner(System.in);
System.out.println("请输入星期数");
int a =sc.nextInt();
switch (a){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("n您输入得有误,请重新输入");
}
三种循环
特征:具有重复得开始和停止得标志
for循环!!(重要)
格式(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
初始化语句:就是定义一个变量而已 //只执行一次
条件判断语句:返回一个true或者false true则条件控制语句增加一次,false则停止
条件控制语句:变量自增或自减
执行流程:
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
3.执行循环语句
4.执行条件控制语句
5.回到第二步
案例:
跑步三圈 到第三圈停止
for (int i = 0; i < 3; i++) {
System.out.println("加油跑,减肥");
}
//减肥这种事代码做了我就不做了
初始化语句 i=0 开始0圈开始
条件判断语句 i<3 i<3 false则停止 true则条件控制语句增加一次
i++ ++ 每次加1 会执行三次 打印三次语句
案例1:
需求:在控制台输出1-5
思路:进行反复得动作 使用循环 初始化语句从1开始 从一到五开始,设置判断条件没有五得时候继续执行,超过五就结束,将反复进行得数据写入循环内部输出语句,打印对应数据
for循环 int i=1 i<=5 i++ System.out.println(i); 打印i
自己动手 丰衣足食 有需要可以问哦
案例2:
需求:再输出台打印5-1得数据
思路:进行反复得动作 使用循环 初始化语句从5开始 从一开始,设置判断条件没有等于1得时候继续执行,等于1就结束,将反复进行得数据写入循环内部输出语句,打印对应数据
for循环 int i=5 i<=1 i-- System.out.println(i); 打印i
for (int i = 5; i >=1 ; i--) {
System.out.println(i);
}
注意:循环中,控制循环的变量,可以作为循环组织到循环体中使用得
循环的条件不要局限的认为就是++ 还有--
案例3:
需求:1-5之间得数据和,并把求和结果打印再输出台
分析:求和得最终结果必须保存起来,需要定义一个变量,用于保存求和得结果,初始值为0
再循环中初始化一个变量从1开始,不断++,增长到5
循环得过程,将能代表(1-5)得i变量和SUM进行累加
当循环结束时,将最终结果打印出来
代码:
int sum=0;
for (int i = 1; i <=5 ; i++) {
sum = sum+i;
sum +=i;
System.out.println("数据一到五得和"+sum);
}
案例4:
求一道五得偶数和
使用if语句
代码:
int sum=0;
for (int i = 1; i <=100 ; i++) {
//sum = sum+i;
if (i%2==0){
sum +=i;
System.out.println("数据一到一百得偶数和"+sum);//得到得是他的总和
}
System.out.println("数据一到一百得偶数和"+sum);//得到得时它每一次相加得和
}
//如果想得到它得奇数和 把if得条件判断语句0改为1
案例4:
需求:再控制台输出所有得水仙花数 水仙花数为个位 十位 百位数得立方 和等于他的原数 例如:371 3*3+7*3+1*3
明天附答案
while循环
基本格式
while(条件判断语句){
循环体语句;
}
完整格式:
初始化语句
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
3.执行循环体语句
4.执行条件控制语句
5.回到第二步
案例:
需求:在控制台打印一到一百得数
for循环
for (int i = 1; i <=100 ; i++) {
System.out.println(i);
}
while循环
int i=1;
while(i<=100){
System.out.println(i);
i++;
}
注意()后不要加;,;是语句得结束
案例2:
世界最高的山珠穆朗玛峰,8844.43米=8844430毫米 一张纸0.1毫米厚
需求:折多少次可以完成
明天附答案
do...while循环
基本格式
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句:
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
1.执行初始化语句
2.执行循环体语句
3.执行条件控制语句
4.执行条件判断语句,看其结果是true还是false,如果是false,循环停止,如果是true,循环继续
5.回到第二步
代码:
int i =1;
do{
System.out.printIn("我真帅");
}while(i<=100);
三种循环得区别
for循环和while循环西安判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do...while循环先执行一次循环体,然后判断条件是否成立,是否执行循环体(先执行后判断)
for循环和while循环的区别:
条件控制语句所控制的自增变量,因为属于for循环得语法结构中,再for循环结束后,就不能再访问了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
三种循环使用场景
明确循环次数 推荐使用for循环
不明确循环次数,使用while循环
do...while循环,很少使用
死循环
:无限循环
三种格式
for(;;){
}
while(true){
}
do{
}while(true);
跳转控制语句
示例1:
电梯1到24层 4层不停
for (int i = 0; i <=24; i++) {
System.out.println(i+"层到了");
}
使用continue
for (int i = 0; i <=24; i++) {
if (i==4){
continue;
}
System.out.println(i+"层到了");
}
实例2:
模拟20岁工作到80岁,60岁退休
for (int i = 20; i <=80; i++) {
System.out.println(i+"岁正在上班");
}
使用break;
for (int i = 20; i <=80; i++) {
if(i==60){
break;
}
System.out.println(i+"岁正在上班");
}
小结:continue用在循环中,基于条件控制,跳过每次循环体执行得内容,继续下次得执行
break 用在循环中,基于条件控制,种植循环体得执行,就是结束掉整个循环
Random
作用随机生成一个随机数 例如:随机点名器
用法和键盘录入相似
1.导包 import java.util.Random;//导包必须在类定义得上面
2.创建对象 Random r= new Random();
3.获取随机数int num=r.nextInt(10);//数据范围0-10 包括0 不包括10
好好休息,明天继续