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("");
}
}
}