循环结构
-
while循环
-
do…while循环
-
for循环
-
在java5中引入了一种主要用于数组的增强型for循环。
1.while循环
结构:
while(布尔表达式){ //循环内容 }
-
只要布尔表达式为true,循环就会一直执行下去。
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
-
少部分的循环一直执行,比如服务器的请求响应监听等。
-
当表达式一直为true,一直执行,陷入死循环。
//while循环结构 public class WhileDemo01 { public static void main(String[] args) { //用循环输出1~100 int i=0; while(i<100){ i++; System.out.println(i); } } }
死循环
public static void main(String[] args) { //死循环,尽量避免 while(true){ //等待客户的回应 //定时的检查 } }
*计算1+2+3+…+100
public static void main(String[] args) { //计算1+2+3+...+100 int i=0; int sum=0; while(i<=100){ sum+=i;//相当于sum=sum+i; i++; } System.out.println("sum="+sum); }
-
do…while循环
-
对于while语句而言,如果不满足条件,则不能进入循环。
-
但有时候我们需要即使不满足条件,也至少执行一次。
-
do…while和while循环相似,但是do…while至少执行一次。
do{ //代码 }while(布尔表达式);
public static void main(String[] args) { int i=0; int sum=0; //循环至少执行一次 do { sum += i; i++; }while (i<=100); System.out.println("sum="+sum); }
do…while和while的区别
- while先判断后执行,do…while是先执行后判断。
- 主要差别:do…while至少执行一次
//while和do...while的比较
public class DoWhileDemo02 {
public static void main(String[] args) {
int i=0;
//同样的条件,同样的输出,do...while至少执行一次。
while(i>0){
System.out.println(i);
}
System.out.println("==========================");
do{
System.out.println(i);
}while (i>0);
}
}
for循环
-
java提供的for循环是循环结构变得更简单。
-
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
-
for循环执行的次数是在执行前就确定的。
for(初始化;布尔表达式;更新){ //代码语句 }
//for循环和while循环的比较 public class ForDemo01 { public static void main(String[] args) { int a=0; while (a<100){ System.out.println(a); a+=2; } System.out.println("while循环结束"); for (int i = 0; i < 100; i++) { System.out.println(i); } System.out.println("for循环结束"); } }
练习
1.100内奇数和偶数的和
public static void main(String[] args) {
//100内奇数和偶数的和
int oddSum=0;//奇数
int evenSum=0;//偶数
for (int i = 0; i <= 100; i++) {
if(i%2!=0){
oddSum=oddSum+i;
}else{
evenSum=evenSum+i;
}
}
System.out.println("奇数的和为:"+oddSum);
System.out.println("偶数的和为:"+evenSum);
}
2.输出1000内可以被5整除的数,每三个输出一行
public static void main(String[] args) {
int index=0;
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
index++;
if(index%3==0){
System.out.println("\n");
}
}
//print是在一行一直输出
//println是输出后换行
}
}
3.打印九九乘法表
//打印九九乘法表
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for(int j = 1;j <= i; j++){
System.out.print(i+"*"+j +"="+ i*j+"\t");
}
System.out.println("\n");
}
}