for,while,do-while >完整的循环应该包含以下四个部分: 初始化语句:初始化工作,在循环体开始之前执行 条件表达式:一个boolean表达式,决定是否执行循环体 循环体:反复执行的部分 循环变量控制语句(迭代语句):在循环体执行完之后执行,然后再去判断循环条件,一般用来控制循环条件中的变量,使循环在合适的时候结束 ###for循环 >格式 for(初始化表达式;条件表达式;循环变量控制语句){ 循环体语句; } 特殊格式 for(;;){ } >for运行的顺序: 1.执行初始化表达式,只执行一次,通常是定义循环变量语句 2.判断循环条件:为真就往下执行;为假就结束循环 3.执行循环体语句 4.执行循环变量控制语句,一般是循环变量的自增或自减 5.回到第2步,重复这个过程,直到为假时结束 >for循环注意事项: 1.循环变量通常定义为int型,因为最常用的就是int型 2.循环条件判断的结果是boolean类型值 3.小括号中的分号不能写成中文的分号 4.如果循环体只有一条语句的话,可以省略大括号,但建议写全 5.循环变量控制语句不必每次改变1,根据情况,可以是任意值 ###While循环 >格式 [初始化语句] while(条件表达式){ 循环体语句; [循环变量控制语句] } 特殊格式 while(true){ if(...){//退出循环;break} } >执行流程: 1.执行初始化语句(如果有的话) 2.判断条件表达式真假:如果真,往下执行;如果假,结束循环 3.执行循环体语句 4.执行循环变量控制语句(如果有的话) 5.返回第2步,重复执行,直到条件为假,结束循环 >循环变量的使用问题 for循环的循环变量,一般情况下在循环外是不能访问到的, 因为它的作用域是在for循环的{}之内, 但是可以通过把循环变量定义在外边来实现这个功能; 或者定义计数器 for(int i = 0;i<10;i++){ ... } System.out.println(i);//NG报错 /*正确模式 int i = 0; for(;i<10;i++){ ... } System.out.println(i);//OK */ # while循环本身就把循环变量定义在循环之外,所以没有这个问题 int i = 0; while(i<10){ ... i++; } System.out.println(i); >for 和 while的应用场景 for循环和while循环一般情况下是可以互换的. 1.当明确知道循环的范围的时候,通常使用for 2.当不明确循环次数的时候,for和while都可以,通常使用while ###do-While循环 [初始化语句] do { 循环体语句;//至少被执行一次 [循环变量控制语句] }while(条件表达式);
>eg1: //在控制台上依次打印1-10 public class PrintDemo{ public static void main(String[] args){ for(int i = 1;i<=10;i++){ System.out.println(i); } } } >eg2: //求1-10的和 public class SumDemo{ public static void main(String[] args){ int sum=0; for(int i = 1;i<=10;i++){ sum+=i; } System.out.println(sum); } } >eg3: //求水仙花数:位数,各个位上数字的立方和等于这个数本身,例:153 public class FlowerDemo{ public static void main(String[] args){ int sum=0; for(int i = 100;i<=999;i++){ int bai = i / 100; int shi = i /10 %10; int ge = i %100 %10; if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i){ System.out.println(i); } } } } >eg4: //统计1000以内,同时是3,5,7的倍数的数有多少个? /* 在1-100之间,若是3的倍数,则在它之后输出中文“三”, 若是5的倍数,则在它之后输出中文“五”, 若是7的倍数,则在它之后输出中文“七” */ public class Multiple_3_5_7{ public static void main(String[] args){ for(int i= 1;i<=100;i++ ){ System.out.print(i); if (i % 3 == 0){ System.out.print(" 三 "); } if(i % 5 == 0){ System.out.print("五"); } if(i % 7 == 0){ System.out.print("七"); }System.out.println(""); } } }