1.while循环
while (布尔表达式){ //循环内容 }
注:
1.只要布尔表达式为true,循环就会一直执行下去
2.大多数情况会让循环停下来的,需要一个让表达式失效的方式来结束循环
3.循环条件一直为true会造成死循环
例1: public class whileDemo01 { public static void main (String[] args) { //输出i=100 int i=0; while(i<100){ i++; System.out.println(i); } } } 例2: public class whileDemo02 { public static void main(String[] args) { //计算1+2+3+...+100 int i=0; int sum =0; while(i<=100){ sum = sum + i; i = i + 1; } System.out.println(sum); } }
2.do while 循环
对于while语句而言,如果不满足条件,则不进入循环,但有时需要即使不满足条件也至少执行一次
do...while 循环和while 循环相似,但do...while 循环至少执行一次
do{ //代码语句 }while(布尔表达式);
while和Do while的区别:
1.while先判断后执行,do while先执行后判断
2.DO...while总是保证循环体会至少被执行一次
例1: public class javaDemo03 { public static void main(String[] args) { int i = 0; int sum = 0; do{ sum =sum+i; i++; }while (i<= 100); System.out.println(sum); } } 例2: public class whileDemo04 { public static void main(String[] args) { int i =0; while(i<0){ System.out.println(i); i++; }//i=0,所以不进上面的循环 System.out.println("============="); do{ System.out.println(i); i++; }while(i<0); } }
3.For循环
虽然所有的循环结构都可以用while和do...whileb表示,但是for循环会使循环结构变得更加简单
** for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
** for循环执行的次数是在执行前就确定的
for(初始化;布尔表达式;更新){ //代码语句 }
例1: public class forDemo01 { public static void main(String[] args) { int i =1;//初始化条件 while(i<=100){//条件判断 System.out.println(i);//循环体 i+=2;//i=i+2 迭代 } System.out.println("while循环结束!"); //初始化//条件判断//迭代 for (int a =1;a<=100;a++){ System.out.println(a); } System.out.println("for循环结束!"); } }//100.for—快捷输入 /* 关于for循环有以下几点说明: 1.最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句; 2.检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句; 3.再次检测布尔表达式,循环执行上面的过程; //死循环 for( ; ;){ } */ 例2: public class forDemo02 { public static void main(String[] args) { //计算0到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); } }
例3: public class forDemo03 { public static void main(String[] args) { //用while和for循环输出1-1000之间能被5整除的数,并且每行输出三个 for(int i = 0;i<=1000;i++){ if (i % 5!=0){ i=i+1; } else{ System.out.print(i+"\t"); } if (i%(5*3)==0){//每行 System.out.println("\n");//也可以写成 System.out.println(" "); } } //println——输出完会换行 //prtnt——输出完不会换行 } }
//打印九九乘法表 public class forDemo04 { public static void main(String[] args) { for (int b = 1; b < 10; b++) { for(int a=1;a<=b;a++){ System.out.print(b+"*"+a+"="+1*a+"\t"); } System.out.println(); } } }
4.增强for循环
主要用于数组或集合的增强型for循环
for(声明语句:表达式){ //代码句子 }
例1: public class Demo05 { public static void main (String[] args){ int[] numbers = {10,20,30,40,50};//定义了一个数组 for (int i = 0 ; i<5;i=i+1){ System.out.println(numbers[i]); } System.out.println("============================="); //遍历数组的元素 for(int x:numbers){ System.out.println(x); } } }
5.break continue
(1)break
在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句,(break语句也可在switch语句中使用)
public class breakDemo { public static void main(String[] args) { int i =0; while(i<100){ i++; System.out.println(i); if(i==10){ break; } } System.out.println("123");//break只是跳出循环,但时循环外的还会执行 } }
(二)continue
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
public class ContinueDemo { public static void main(String[] args) { int i =0; while(i<30){ i=i+1; if(i%10==0){ System.out.println(); continue; } System.out.print(i); } } }
(三)go to
goto并未得到正式使用,但是可以在break和continue这两个关键字上,做一个标签,之后可以跳转
public class LableDemo { public static void main(String[] args) { //打印1-150之间的所有质数 int count = 0; outer:for(int i=101;i<150;i++){ for(int j=2;j<i/2;j++){ if(i % j==0){ continue outer; } } System.out.print(i+" "); } } }
例1: public class TestDemo { //打印三角形 5行 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(); } } }