1.循环结构:
在某些条件满足的情况下,反复执行特定代码的功能。
2.JAVA循环语句分类:
(1)for循环
(2)while循环
(3)do-while循环
3.循环语句的四个组成部分
(1)初始化部分
(2)循环条件部分
(3)循环体部分
(4)迭代部分
4.for循环
一、For循环结构的使用 (1)初始化部分 (2)循环条件部分 (3)循环体部分 (4)迭代部分 二、For循环结构 for((1);(2);(3)){ (4) }
三、For循环例子
例1:输出五次HelloWorld
方法一:
import java.util.Scanner; class ForTest{ public static void main(String[] args){ for(int i=1;i<=5;i++){ System.out.println("Hello,World!"); } } }
编译运行:
方法二:
import java.util.Scanner; class ForTest{ public static void main(String[] args){ for(int i=2;i<=10;i+=2){//i=1,2,3,4,5 System.out.println("Hello,World!"); } } }
例2:
import java.util.Scanner; class ForTest{ public static void main(String[] args){ //练习: int num=1; for(System.out.print('a');num<=3;System.out.print('c'),num++){ System.out.print('b'); //输出结果 abcbcbc } } }
例3:求100以内的偶数之和。
代码实现:
import java.util.Scanner; class ForTest{ public static void main(String[] args){ int sum = 0; for(int i=2;i<=100;i++){ if(i%2==0) sum+=i; } System.out.println(sum); } }
运行结果:
例4:编写程序从1-150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,另外在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出"baz"。
代码实现:
import java.util.Scanner; class ForTest{ public static void main(String[] args){ for(int i=2;i<=150;i++){ if(i%3==0) {System.out.println("foo"+" "+i);} if(i%5==0) {System.out.println("biz"+" "+i);} if(i%7==0) {System.out.println("baz"+" "+i);} } } }
编译运行:
例5:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60。
代码实现:
/* 12 20 除数不能超过两者的最小值 最大公约数:不能超过两个数的最大值(从大的往小的找) 最小公倍数: */ import java.util.Scanner; class ForTest{ 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);//4 break;//跳出当前for循环 } //获取最小公倍数-不能比它俩小(范围:max到两乘积之间) int max=(m>=n)?m:n;//获取两个数中的较大值 for(int i=max;i>=m;i++) if(i%m==0&&i%n==0){ System.out.println(i);//60 break;//跳出当前for循环 } } }
例6:输出所有的水仙花数,所谓水仙花数是一个三位数,其各个位上数立方和等于其本身。
代码实现:
class ForTest{ public static void main(String[] args){ for(int i=100;i<=999;i++){ int p=i/100;//求出百位 int q=i%100/10;//求出十位 int r=i%10;//求出个位 int result=p*p*p+q*q*q+r*r*r; if(i==result){ System.out.println(i); } } } }
编译运行:
5.while循环
一、while循环的使用
(1)初始化部分 (2)循环条件部分 (3)循环体部分 (4)迭代部分
二、while循环结构
(1)初始化条件
while((2)循环条件){
(3);
(4);
}
三、while循环的例子
遍历1-100以内的所有偶数
代码实现:
class WhileTest{ public static void main(String[] args){ int i=1; while(i<=100){ if(i%2==0){ System.out.print(i); } i+=1; } } }
6、for与while循环的转换说明
for和while的循环是可以相互转换的。
区别:for循环与while循环的初始化条件的范围不一样。
7.do-while循环
一、循环结构四要素(循环条件是布尔类型)
二、do-while循环结构
(1)
do{
(3);
(4);
}while((2))
执行过程:(3)-(4)-(2)......
三、例子-100以内偶数和
class DoWhileTest{ public static void main(String[] args){ int i=1; do{ if(i%2==0){ System.out.print(i); i+=1; }while(i<=100) } } }
8.while与do-while
class DoWhileTest{ public static void main(String[] args){ int i=10; do{ System.out.print("hello:do-while"); i--; }while(i>10) } while(i>10){ System.out.print("hello:while"); i++; } }