循环结构
if……else……和switch
/*
case后的值只能是使用常量表达式
case的value不能重复
case后没有break,则会继续执行下一个case语句
如果没有找到对应的case值,则会执行default后面的语句
如果具体数值不多,使用switch语句效率高
*/
int s = 2;
if (1 <= s && s <= 7)
{
switch (s)
{
case 1:System.out.println("星期一");
break;
case 2:System.out.println("星期二");
}
}
else
{
System.out.println("输入错误");
}
while循环
/*
循环:在某种条件满足的情况下,反复执行特定代码的功能
while & do while
*/
/*
while先判断后执行
用户循环次数不明确的情况
*/
while(true){
System.out.println("死循环");
}
/*
do while 先执行后判断
*/
int i=0;
do{
Scanner input=new Scanner(System.in);
int s=input.nextInt();
++i;
}while(i<5);
for循环
/*
for循环
先执行第一部分,变量初始化,只执行一次
进入循环的次数为多次
循环语句执行多次
变量更新多次
*/
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
/*
相同的死循环,for和while的哪个速度更快呢?
*/
for (;;) {
System.out.println("死循环");
}
break和continue
/*
break语句用于终止某个语句块的执行,强行退出
*/
for (int i = 0; i < 7; i++) {
if (i==5){
break;
}
System.out.println("i="+i);
}
System.out.println("-------------------------");
/*
continue 用于终止某次循环过程,跳过continue下面的循环,开始下一次循环
*/
for (int j = 0; j< 7; j++) {
if (j==5){
continue;
}
System.out.println("j="+j);
}
运行结果:
i=0
i=1
i=2
i=3
i=4
-------------------------
j=0
j=1
j=2
j=3
j=4
j=6
嵌套循环
/*
嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时
才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环
9*9乘法口诀表
*/
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print( i + "*" + j + "=" + i * j + "\t" );
}
System.out.println();
}
运行结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for (int i = 0; i < 5; i++) {
/*
设置标记点 自定义名称,通过语句 break 自定义名;
跳转到对应的标记处继续执行
*/
out:for (int j = 0; j < 5; j++) {
if(j==3){
break out;
}
System.out.print("j="+j+"\t");
}
System.out.println("i="+i);
}
运行结果:
j=0 j=1 j=2 i=0
j=0 j=1 j=2 i=1
j=0 j=1 j=2 i=2
j=0 j=1 j=2 i=3
j=0 j=1 j=2 i=4