循环结构
while循环
-
while是最基本的循环,他的结构为
while(布尔表达式){ //循环内容 }
-
只要布尔表达式为true,循环就会一直循环下去。
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
-
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
-
循环条件一直为true就会造成无线循环【死循环】,我们正常的业务编辑过程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!
-
思考:计算1+2+3+…+100=?
public class WhileDemo01 { public static void main(String[] args) { //思考题:1+2+3.。。+100=? //高斯:首尾相加除以2,再乘以相加的数量就是答案 int i =0; int sum = 0; while (i<=100){ sum=sum+i; i++; System.out.println(sum);//5050
do…while循环
-
对于while语句而言,如果不满足条件,则不能进入循环,但有时候我们需要即使不满足条件,也要至少执行一次。
-
do。。while循环和while循环相似,不同的是,do。。while循环至少会执行一次。
do{ //代码语句 }while(布尔表达式);
-
while和do…while的区别
- while先判断后执行l;do…whlie是先执行后判断。
- Do…whlie总是保证循环体会被至少执行一次!这是他们主要差别。
public class Do_whileDemo {
public static void main(String[] args) {
//while和do...while区别
int i = 0;
//while:先判断后执行
while (i<0){
System.out.println(i);
i++;
}
System.out.println("====================");
//do..while:先执行后判断
do {
System.out.println(i);
i++;
}while (i<0);
for循环
-
虽然所有循环结构都可以用while和do…while表示,但java提供了另外一种语句——for循环,使一些循环结构变得更加简单。
-
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
-
for循环执行的次数是在执行前就确定。语法格式:
for(初始化;布尔表达式;更新){ //代码语句 }
-
练习体:
- 计算0到100之间的气数和偶数的和:
public class ForDemo01 { public static void main(String[] args) { //练习题:计算0到100之间的气数和偶数的和。 int oddsum = 0; int eversum = 0; //初始化;布尔表达式;迭代 for (int i = 1; i <= 100; i++) { if (i%2 !=0){ //除余不等于0时判断为奇数 oddsum+=i; //oddsum=sum+i }else { //除余等于0时判断为偶数 eversum+=i;//eversum=sum+i } System.out.println("奇数的和为:"+oddsum);//2500 System.out.println("偶数的和为:"+eversum);//2550
- 用while和for循环输出1-1000之间的能被5整除的数,并且每行输出3个:
public class ForDemo02 { public static void main(String[] args) { //使用while 和 do ... while语句:1-1000的数字能被5整除的数,并且每行输入3后换行。 //while语句方法 int a = 0; while (a<=1000) { a++; if (a % 5 == 0) { System.out.print(a + "\t"); } if (a % (5 * 3) == 0) { System.out.println(); } } System.out.println("\n"+"=================================="); //for循环 for (int i = 1; i <= 1000; i++) { if (i%5 ==0){ //当除余为0时,就是能被5整除的数 System.out.print(i+"\t"); //注意这里print(不换行),不是println } if(i%(5*3)==0){ //换行 System.out.println(); //System.out.println("\n"); \n代表换行 } //println输出完后换行 //print输出完后不换行
-
打印九九乘法表:
public class FofDemo03 { public static void main(String[] args) { //九九乘法表 for (int j = 1; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.println();
-
关于for循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔布尔表达式的值,如为true循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环体后,更新循环控制变量(迭代因子控制循环变量的增减)。
再次检测布尔表达式。循环执行上面的过程。
//死循环 for(;;)//它没有初始值和布尔表达式