一、while循环:又称为当型循环
while(循环条件){
//循环操作语句
}
要点:①先判断后执行②循环次数不定③避免死循环
例题:输入一个正整数,把整数逆序输出,如输入12345,输出54321
1 import java.util.Scanner;
2 public class dowhileforDemo{
3 public static void main(String []args)
4 {
5 //输入一个正整数,把整数逆序输出,如输入12345,输出54321
6 Scanner input=new Scanner(System.in);
7 System.out.println("请输入一个正整数");
8 int number=input.nextInt();
9 while(number!=0)
10 {
11 int res=number%10;
12 System.out.print(res);
13 //number=number/10;
14 number/=10;
15 }
16 }
17 }
二、do while循环:又称为直到型循环
要点:①先执行后判断②至少执行一次③最后的分号勿漏
do{
//循环操作语句
}while(循环语句);
例题:计算从1开始的连续n个自然数之和,当其和刚好超过100时结束,求n的值
1 public class dowhileforDemo{
2 public static void main(String []args)
3 {
4 //计算从1开始的连续n个自然数之和,当其和刚好超过100时结束,求n的值
5 int number2=0;
6 int sum=0;
7 do{
8 number2++;
9 sum+=number2;
10 }while(sum<=100);
11 System.out.println("sum="+sum);
12 System.out.println("number2="+number2);
13 }
14 }
三、for循环
for(表达式1;表达式2;表达式3){
//循环操作;
}
表达式1:参数初始化,对变量赋值
表达式2:条件判断
表达式3:更新循环体变量,防止死循环
执行顺序:1、参数初始化2、条件判断 3、循环操作4、更新循环体变量5、条件判断6、循环操作7、更新循环体变量….(重复2,3,4步)
例题:打印1-10
1 public class dowhileforDemo{
2 public static void main(String []args)
3 {
4 //打印1-10
5 for(int i=1;i<=10;i++)
6 {
7 System.out.println(i);
8 }
9 }
10 }
for循环的3个表达式都可以省略
①表达式1省略
1 public class dowhileforDemo{
2 public static void main(String []args)
3 {
4 //打印1-10
5 int i=1;
6 for(;i<=10;i++)
7 {
8 System.out.println(i);
9 }
10 }
11 }
②表达式2省略会导致条件永远成立,形成死循环
③表达式3省略,也可能导致条件永远成立,形成死循环
但可以写在循环操作中
1 public class dowhileforDemo{
2 public static void main(String []args)
3 {
4 //打印1-10
5 int i=1;
6 for(;i<=10;)
7 {
8 System.out.println(i);
9 i++;
10 }
11 }
12 }
④3个表达式全部省略,条件永远成立,形成死循环
分号不能省略
四、while循环与for循环比较
while循环是不确定型循环(循环次数不确定),for循环是确定型循环(循环次数确定)
两者可以相互转换
当循环次数确定时,使用for循环
当循环次数不确定时,使用while循环
五、二重循环
for(表达式1;表达式2;表达式3){//外层循环
for(表达式1;表达式2;表达式3){//内层循环
}
}
要点:①在循环体内含有一个循环语句的循环称为二重循环
②当外循环执行一次,内循环要循环完毕,再回到外循环进入下一次循环,直到外循环执行完毕为止
例题:实现输出*号的三角形阵列共9行,第一行输出1颗*,第二行输出2颗*…第9行输出9颗*
1 public class dowhileforDemo{
2 public static void main(String []args)
3 {
4 //实现输出*号的三角形阵列共9行,第一行输出1颗*,第二行输出2颗*…第9行输出9颗*
5 for(int i=1;i<=9;i++)
6 {
7 //外循环控制打印行数
8 for(int j=1;j<=i;j++)
9 {
10 //内循环控制打印的*个数
11 System.out.print("*");
12 }
13 System.out.println();
14 }
15 }
16 }