循环语句分类
for 循环
while 循环
do-while 循环(用的较少)
循环语句的四个组成部分
初始化部分(init_statement)
循环条件部分(test_exp)
循环体部分(body_statement)
迭代部分(alter_statement)
for循环
/* 一,循环结构的四要素 1.初始化条件 2.循环条件(是boolean类型) 3.循环体 4.迭代条件 二,for循环的结构 for(1;2;4){ 3 } */ public class ForTest { public static void main(String[] args){ //i:0,1,2,3,4 for(int i = 0 ; i < 5 ; i++){ System.out.println("HelloWorld"); } } }
遍历100以内的偶数,并输出所有偶数的和, 和偶数的个数
//遍历100以内的偶数,并输出所有偶数的和, 和偶数的个数 public class ForTest { public static void main(String[] args) { int sum = 0;//记录所有偶数的和 int count = 0;//记录偶数的个数 for (int i = 1; i <= 100; i++){ if (i % 2 == 0) { System.out.println(i); sum += i; count++; } } System.out.println("总和为" + sum); System.out.println("个数为" + count); } }
/* 编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行 上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印 输出“baz” */ public class ForTest { public static void main(String[] args) { for(int i = 1;i <= 150 ;i++){ System.out.print(i + " "); if(i % 3 == 0) { System.out.print("foo "); } if(i % 5 == 0) { System.out.print("biz "); } if(i % 7 == 0) { System.out.print("baz "); } System.out.println(); } } }
/* 输入两个正整数m和n,求其最大公约数和最小公倍数。 比如:12和20的最大公约数是4,最小公倍数是60 */ import java.util.Scanner; public class Test { public static void main(String[] args){ Scanner scan = new Scanner (System.in); System.out.println("请输入第一个正整数:"); int m = scan.nextInt(); System.out.println("请输入第二个正整数:"); int n = scan.nextInt(); //获取两个数中的较小值 int min = (m < n)? m : n; for(int i = min; i >= 1; i--){ if (m % i == 0 && n % i ==0){ System.out.println("最大公约数为:" + i); break;//一旦在循环中执行到break,就跳出循环 } } int max = (m > n)? m : n; for(int i = max; i <= m * n; i++){ if(i % m == 0 && i % n == 0){ System.out.println("最小公倍数为:" + i); break; } } } }
/* 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数 字立方和等于其本身。 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 */ public class Test { public static void main(String[] args){ for(int i = 100;i < 1000;i++){ int bai = i / 100; int shi = i % 100 / 10; int ge = i % 10; if(i == ge * ge * ge + bai * bai * bai + shi * shi * shi){ System.out.print("水仙花数为:"); System.out.println(i); } } } }
while循环
/* while 循环的使用 一.循环结构的四要素 1.初始化条件 2.循环条件(boolean类型) 3.循环体 4.迭代条件 二.while循环的结构 1; while(2){ 3 ; 4; } 说明:1.写while循环千万小心不要丢了迭代条件,丢了就导致死循环 2.for循环与while循环是可以相互转换的 3.for循环和while循环的初始化条件部分的作用范围不同 */ //遍历100以内的所有偶数 public class Test { public static void main(String[] args){ int i = 1; while(i <= 100){ if(i % 2 == 0){ System.out.println(i); } i++; } } }
/* 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入 为0时结束程序。 */ import java.util.Scanner; public class Test { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int positiveNumber = 0; int negativeNumber = 0; while(true){ int number = scan.nextInt(); if(number > 0){ positiveNumber++; }else if(number < 0){ negativeNumber++; }else{ break; } } System.out.println("正数的个数:" + positiveNumber); System.out.println("负数的个数:" + negativeNumber); } }
do-while循环
/* do-while 循环的使用 一.循环结构的四要素 1.初始化条件 2.循环条件(boolean类型) 3.循环体 4.迭代条件 二.do-while循环的结构: 1; do{ 3 ; 4; }whlie(2); 说明:1.do-while循环至少执行一次循环体 */ //遍历100以内的所有偶数 public class Test { public static void main(String[] args){ int i = 1; do{ if(i % 2 ==0){ System.out.println(i); } i++; }while(i <= 100); } }
嵌套循环
/* 嵌套循环的使用 1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体结构中,就构成了嵌套循环 2.外层循环:循环结构B 内层循环:循环结构A 3.外层循环控制行数,内层循环控制列数 说明:内层循环结构遍历一遍,只相当于外层循环循环体执行了一次 */ public class Test { public static void main(String[] args){ for(int s = 1;s <= 5; s++){ for(int h = 1; h <= 5;h++){ System.out.print("*"); } System.out.println(); } } }
public class Test { public static void main(String[] args){ for(int s = 1;s <= 5; s++){ for(int h = 1; h <= s;h++){ System.out.print("*"); } System.out.println(); } } }
/* 九九乘法表 1*1 =1 2*1 =2 2*2=4 ...... 9*1 =9 ..... 9*9 =81 */ public class Test { public static void main(String[] args){ for(int h = 1 ; h <= 9 ; h++){ for(int l = 1 ; l <= h ; l++){ System.out.print(h + "*" + l + "=" + (h * l) +" "); } System.out.println(); } } }
/* 遍历一百以内的质数(素数) */ public class Test { public static void main(String[] args){ boolean isFlag = true;//标识i是否被除尽,一旦除尽,修改其值 for(int i = 2; i <= 100; i++){ //遍历100以内的自然数 for(int j = 2 ; j < i ; j++){ //j:被i去除 if(i % j == 0){ //i被j除尽 isFlag = false; break; //只对本身非质数的自然数是有效的 } } if(isFlag == true){ System.out.println(i); } isFlag = true; //重置isFlag } } }
特殊流程语句说明
break
break使用场合:switch-case 循环结构
说明:结束当前循环
package com.sz.zl; public class Test { public static void main(String[] args){ for(int i = 1;i <= 10;i++){ if(i % 4 == 0){ break; } System.out.println(i); //输出:1 2 3 } } }
continue
continue使用场合:循环结构
说明:结束当此循环
public class Test { public static void main(String[] args){ for(int i = 1;i <= 10;i++){ if(i % 4 == 0){ continue; } System.out.println(i); //输出:1 2 3 5 6 7 9 10 } } }
在嵌套循环中的使用
public class Test { public static void main(String[] args){ for(int i = 1;i <= 4;i++){ for(int j =1;j <= 10;j++){ if (j % 4 == 0) { //break; //默认跳出包裹此关键字最近的一层循环 continue; } System.out.print(j); //输出结果: 123 } // 123 System.out.println(); // 123 } } }
public class Test { public static void main(String[] args){ label:for(int i = 1;i <= 4;i++){ //label: 指定标识 for(int j =1;j <= 10;j++){ if (j % 4 == 0) { //break label;//跳出指定标识的一层循环 continue label; } System.out.print(j); } System.out.println(); } } }