3.2 循环
3.2.1 while 当型循环,先判断,后执行
1、流程结构
2、应用实例
/**
* 测试while循环
* @author 14323
*
*/
public class TestWhile {
public static void main(String[] args) {
//计算1+2+3+4+···+100累加的和
int i = 1;
int sum = 0;
//当i<=100时进行加和
while(i<=100) {
sum+=i++;
}
System.out.println(sum);
}
}
3.2.2 do while 循环:先执行,后判断
1、流程结构
2、应用实例
/**
* 测试do-while循环
* @author 14323
*
*/
public class TestDoWhile {
public static void main(String[] args) {
//计算1+2+3+4+···+100
int i = 1;
int sum = 0;
do {
sum+=i++;
}while(i<=100);
System.out.println(sum);
}
}
3.2.3 for循环
1、流程结构
2、应用实例
/**
* 测试for循环
* @author 14323
*
*/
public class TestFor {
public static void main(String[] args) {
/*int sum = 0;
for(int i = 1;i<=100;i++) {
sum += i;
}
System.out.println(sum);
*/
/*
* 语句执行顺序:
* 1、初始化语句:i = 1;
* 2、判断i<=100;
* 3、执行循环体
* 4、步进迭代
* 5、回到的第二步继续进行判断
*/
for(int i=1,j=i+10;i<5;i++,j=i*2) {
System.out.println("i="+i+"j="+j);
}
}
3、for(;;)是一个死循环
3.2.4 嵌套循环
⭐println和print两者之间的区别:println执行后会换行,print执行后不会换行
应用实例:
/**
* 测试嵌套循环
* @author 14323
*
*/
public class TestWhileQianTao {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
System.out.print(i+"\t");//println是执行后不换行
}
System.out.println();//println是每一次执行后就换行
}
System.out.println("###########");
for(int x=1;x<=9;x++) {
for(int y=1;y<=x;y++) {
System.out.print(y+"*"+x+"="+x*y+"\t");
}
System.out.println();
}
}
}
3.2.5 break和continue
break:用于控制循环流程,可以强制退出当前循环,不执行剩下循环当中的语句
/**
* 测试break和continue
* @author 14323
*
*/
public class TestBreak {
public static void main(String[] args) {
int total = 0;//定义计数器
while(true) {
total++;
int i = (int)Math.round(100*Math.random());
System.out.println(i);
//当i等于88时,退出循环
if(i==88) {
break;
}
}
//输出循环的次数
System.out.println("Game over,used"+total+"times.");
}
}
continue:在循环语句中,种植某次循环的过程,跳过尚未执行的语句,进行下一次循环
/**
* 测试continue
* @author 14323
*
*/
public class TestContinue {
public static void main(String[] args) {
int count = 0;
for(int i = 100;i<=150;i++) {
if(i%3==0) {
continue;
}
count++;
System.out.print(i+"\t");
if(count%5==0) {
System.out.println();
}
}
}
}
3.2.6 带标签的break和continue
⭐通常情况下:break和continue只对当前的循环有效果,为了提升代码效率,java通过标签这一方式使break和continue能够跳出到指定循环当中。
格式 标签名:for(;😉{
for(;😉 {
continue 标签名;
}
/**
* 测试带标签的break和continue
* @author 14323
*
*/
public class TestLabelContinue {
public static void main(String[] args) {
//打印101-150之间所有的质数
outor:for(int i=101;i<=150;i++) {
for(int j=2;j<i/2;j++) {
if(i%j==0) {
continue outor;
}
}
System.out.println(i);
}
}
}