程序的三大结构是顺序、循环、选择。
今天来聊一聊循环。java 中最常用2种循环,一种是for循环,一种是while循环
那么为什么要使用循环呢?
举个例子。我们比如要在命令行打印5句爱java如何实现?System.out.println("爱java");
System.out.println("爱java");
System.out.println("爱java");
System.out.println("爱java");
System.out.println("爱java");
System.out.println("爱java");
这样的方法是可以实现的,但是如果数量在多一点呢?继续这样打也可以实现,但是如果这样实现,就太low了。接下来我们来用循环实现。
for循环
for循环的基本结构如下:
for(循环变量初始化;条件判断语句;控制条件语句){
循环体(需要重复执行的代码);
}
int i=1;
while(i<=5){
System.out.println("爱java");
i++;
}
这样说还是比较抽象,下来我就用for循环实现一下重复打印5句话。
for(int i=0;i<=5;i++){
System.out.println("爱java");
}
简单的两行多代码就轻松实现了,如果要打印100行,只需要改变一下条件判断语句,让它小于等于100即可。
还可以解决一些问题,比如计算1到100的和,以前我们需要从1一直加到100,而现在我们只需要几行代码,其余的计算交给计算机了。
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
下面这段程序就可以计算100以内偶数和以及奇数和
int ji=0;
int ou=0;
for(int i=0;i<=5;i++){
if(i%2==0){
ji+=i;
}else{
ou+=i;
}
}
一个基本程序实现输出1000以内的水仙花数
public static void main(String[] args) { for(int i=100;i<1000;i++){ int ge=i%10; //153%10==3 int shi=i/10%10;//153/10==15%10==5 int bai=i/100;//153/100==1%10==1 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){ System.out.print(i+" "); } } }
while循环
while循环的基本结构如下:
while循环的基本格式:
完整格式:
初始化条件语句;
while(判断条件语句) {
循环体;
条件控制语句;
}
接下来用while循环实现打印5句爱java
int i=1; while(i<=5){ System.out.println("爱java"); i++; }
通过while循环实现水仙花数
public static void main(String[] args) { int i=100; while (i<1000){ int ge=i%10; //153%10==3 int shi=i/10%10;//153/10==15%10==5 int bai=i/100;//153/100==1%10==1 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){ System.out.print(i+" "); } i++; } }
当循环次数不确定的时候,应该选用while循环解决,当循环次数固定的时候应该选用for循环比较好一些。
两种死循环的写法
while(true){...}
for(;;){...}
死循环可以解决一些问题,但是不要真正写成死循环,一定要有出口。
嵌套for循环
程序实现下面例子:
打印一个四行五列的*图案如图:
*****
*****
*****
*****
public static void main(String[] args) { for (int i = 0; i <= 4; i++) { for(int j=0 ; j<=5 ; j++){ System.out.print("*"); } System.out.println(); } }
下一步程序实现
*
**
***
****
*****
public static void main(String[] args) { for (int i = 0; i <= 4; i++) { for(int j=0 ; j<=i ; j++){ System.out.print("*"); } System.out.println(); } }
最典型的案例,命令行打印九九乘法表
public static void main(String[] args) { for (int i = 0; i <= 9; i++) { for(int j=0 ; j<=i ; j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); } }