循环结构
while
与do/while不同,while循环结构表示先判断是否布朗值是否为true,若为true,则进入循环,否则跳过该循环。
public class WhileDemo01 {
public static void main(String[] args) {
//从0加到100.
int i= 0;
int sum= 0;
while (i<100){
i++;
sum=sum+i;
}
System.out.println(sum);
}
}
do while
public class WhileDemo02 {
public static void main(String[] args) {
//从0加到100,(do,,,while,,,,)
int i= 0;
int sum= 0;
do {i++;
sum=sum+i;
}while (i<100);
System.out.println(sum);
}
}
do while则先至少运算一次,再进入循环。
for循环
for循环是最灵活最有效的循环结构,句型为:
for(//赋值; //布朗值; //更新);
//例子:
for(i=0; i<10; i++;)
应用实例:
public class ForDemo01 {
//求0~100的奇数和、偶数和。
public static void main(String[] args) {
int obbSum =0; //偶数和
int senSum =0; //奇数和
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0){ //判断i的余数除以2等于0
obbSum +=i ;
}else {
senSum +=i ;
}
}
System.out.println("偶数和为:"+obbSum);
System.out.println("奇数和为:"+senSum);
}
}
for each 循环
for each循环可用于打印数组的元素,但是不能修改其下标i。
例如,则会输出数组的全部元素。
int[]arrays ={1,2,3,4,5};
for (int array : arrays) {
System.out.println(array);
}
来一个稍微复杂一点点的例子。
实例:利用if、while或for,写出乘法口诀表
乘法表如下:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
我们可以发现,如果将乘法表的每一行单独看,它是一个循环。它的每一列,也是一个循环。
**只不过,每执行一行,就会进入一个循环。**因此,我们在每一行里,设置一个for循环。
同时,列也是一个循环,直到 i=9 为止。我们将列也设置为for循环。就成了循环嵌套循环的结构。
最后,再进行排版的美化即可
package com.street;
public class ForDemo01 {
public static void main(String[] args) {
for (int i =1; i <= 9; i++) {
for (int j = 1; i>=j; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("\n");
}
}
}
另一个有意思的例子
//输出一个三角形
public class TestDemo01 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
结果:
*
***
*****
*******
*********
进程已结束,退出代码0
再补充一点:
continue与break
continue是跳过某次循环,循环还会继续执行。
break则直接跳出循环。
打比喻来说,continue是请假,break是辞职。