switch和循环语句的介绍
一、switch
1、switch格式
switch(表达式){
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
......
case 常量n:
语句体n;
break;
delault:
语句体n+1;
}
2、执行流程
(1) 计算表达式的值,分别跟各个常量进行匹配
(2) 如果和常量1 匹配到,就执行语句体1,执行break;switch语句直接结束
(2)如果和常量2匹配到,就执行语句体2,执行break;switch语句直接结束
(4)如果在匹配过程中跟所有常量都没有匹配,那么执行defaul语句
switch语句的注意事项
1、单词解释
case 情况;break 打断,结束;default:默认
2、表达式:
表达式计算出的结果数据类型为以下
jdk1.5之前:byte,short,int,char
jdk1.5:枚举
jdk1.7:String
switch小括号中的数据类型只能是:int,short,char,byte,枚举,String
3、 case后面跟的只能是常量,不能跟变量
4、break:每个语句体的后面都得跟一个break;语句,否则switch语句不会结束,并且会发生case穿透。
case穿透的利用:多个情况如果是相同的执行逻辑,就可以使用case穿透。
5、default语句:可以写也可以不写,如果不写的话,我们的语句体可能会出现一句也不执行的情况,default这个语句可以放在switch结构体任何位置,如果没有放在最后,也得加上break;(建议把default放在最后0
6,switch语句结束的条件:遇到break和default
7、用swich输出月份的季节(使用了case穿透,以及键盘录入)
import java.util.Scanner;
class Day5_2 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入数字1-12");
int month=sc.nextInt();
switch(month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季季");
break;
default:
System.out.println("输入有误,请重新输入");
}
}
}
二、循环结构
1、循环:花开花落,一年四季的变化,月圆月缺。
2、人类不喜欢做重复的事情,电脑不仅喜欢做重复的事情了,还擅长去做重复的事情。
3、实现语句:
for语句:常用
while语句:常用
do while语句:不常用
4、java语言中,对于需要重复执行的相同的语句,循环语句实现对他们的一种简化。
for语句
1、for语句的格式:
for(初始化语句;循环的判断表达式;初始化语句改变的表达式){
循环语句;
}
2、说明:
初始化语句表达式:定义一个变量,用于记录循环次数。
循环条件判断表达式:控制循环的次数。
初始化语句改变的表达式:将初始化语句中声明的变量进行变化,让初始化变量向着循环不能改变的方向进行变化。
循环语句:需要重复执行的语句。
3、执行流程
for(int i=1; i<=10;i++)
{
System.out.println("Hello World!");
}
(1)第一步执行初始化语句 int i=1;
(2)第二步执行条件判断表达式 i<=10;(如果条件不满足下面的步鄹不执行。
(3)第三步执行循环体语句System.out.println("hello world");
(4)第四步执行初始化变量的改变
while循环语句
1、格式:
初始化语句;
while(条件表达式){
循环语句;
初始化语句自增;
}
2、执行流程
(1)初始化语句;只执行一次
(2)计算条件表达式的值,如果是false循环直接结束。
(3)如果是true就执行循环体语句
(4)执行初始化变量的自增
(5)回到(2)步
3、条件表达式必须是布尔类型的(不能是数字只能是true或者false)
初始化的自增
知道确切的循环次数,用for
对于不确切的循环次数,用while
死循环
1、死循环,无限循环,循环永远执行,不会停止。
2、格式:
while(true){
循环体;
}
for(;;){
循环语句;
}
3、作用:
(1)在使用死循环的时候,虽然格式上使用了死循环的格式,但是肯能出现循环结束的情况,结合一些一些循环跳转语句种植或者跳出循环。
(2)在服务器运行中,希望服务器一直运行下去,用到死循环
跳转语句
1,跳转语句:在循环的过程中,结束循环,控制循环的使用的语句
2,continue;继续
结束本次循环,继续下次循环
3,break:
结束本层的循环
嵌套循环
1、在一次大循环中,每次循环的内容都是一个复杂的操作,是重复的操作,就需要在大循环中去定义一个小循环,把这个称为嵌套循环。
2、格式:
for(初始化语句1;循环条件判断表达式1;初始化变量改变表达式1){
for(初始化语句2;循环条件判断表达式2;初始化变量改变表达式2){ 循环语句;
}
}
3、执行步骤(双重嵌套循环)
(1) 第一步 执行初始化语句1
(2) 第二步 执行循环条件判断语句1
(3) 第三步 执行初始化语句2
(4) 第四步 执行循条件环判断语句2
(5) 第五步 执行初始化变量改变表达式2
(6) 第六步 回到第四步直到条件不满足内层循环结束
(7) 第七步 执行初始化变量改变表达式1
(8) 第八步 回到第二步直到外层循环条件不满足
4、循环嵌套:外层循环控制行号,内层循环控制列号
5、练习
class Day5_8 {
public static void main(String[] args) {
//使用循环计算1+2+3+4+5+...+100的和
//定义一个辅助变量,用来统计i的累加的和结果
int sum=0;
for(int i=1 ;i<=100;i++){
sum +=i;
}
System.out.println("sum="+sum);
System.out.println("-----------");
//使用嵌套循环打印四行五列星星矩阵
for(int i=1;i<=4;i++){
for( int j=1;j<=5;j++){
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------");
//打印一个五行五列的直角的三角形
for(int i=1;i<=5;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------");
/* 打印一个三角形
***
*****
*******
*********
*/
for(int i=1;i<=5;i++){
for(int k=1;k<=5-i;k++){
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}
}