循环结构
定义:根据循环条件,重复性的执行某段代码。
循环结构4要素:1.初始化条件;2.循环条件;3.循环体;4.迭代条件。
有以下三种循环语句:<!--JDK1.5提供了 foreach循环,方便的遍历集合、数组元素-->
while
结构:
1; while(2){ 3; 4; }//执行过程:1,2,3,4,2,3,4......
说明:
while 循环注意迭代条件,没有写入迭代条件可能进入死循环;
for循环和while循环可以相互转换;
区别:for循环和while循环的初始化条件部分的作用范围不同。
练习:
遍历100内的偶数:
int i = 1; while(i <= 100){ if(i % 2 == 0){ System.out.println(i); } i++; }
do...while
结构:
1; do{ 3; 4; }while(2);//执行过程:1、3、4、2、3、4、2、3、4......至少会执行一次循环体。
练习:
遍历100以内的偶数:
int i = 1; do{ if(i % 2 == 0){ System.out.println(i); } i++ }while(i <= 100);
for
结构
for(1;2;4){ 3; }//执行过程:1;2;3;4;2;3;4......
练习:
int num = 1; for(Sysytem.out.println("a");num <= 3;System.out.println("c"),num++){ System.out.println("b"); } //输出结果:abcbcbc
遍历100以内的偶数:
for(int i = 1;i <= 100;i++){ if(i % 2 = 0){ System.out.println("100内的偶数有:"+i); } }
遍历1到150,在每行打印一个值,另外在每个3的倍数行上打印出“foo”,5的倍数打印“biz”,7的倍数打印“baz”
class ForTest{ public static void main(String[] args){ for(i = 1;i <= 150;i++){ System.out.print(i + " "); if(i % 3 == 0){ System.out.print(i + "foo"); } if(i % 5 == 0){ System.out.print(i + "biz"); } if(i % 7 == 0){ System.out.print(i + "baz"); } System.out.println(); } } }
输入两个正整数,求最大公约数和最小公倍数
import java.util.Scanner; class ForTest{ public static void main(String[] args){ Scanner scan = new Scanner (System.in); System.out.println("输入第一个数"); int m = scan.nextIn(); System.out.println("输入第二个数"); int n = scan.nextIn(); 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; } } 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; } } } }
综合例题:
1.从键盘中读入不确定个数的整数,并判断输入正数和负数的个数,输入0时结束程序。
import Java.util.Scanner; class Test01{ public static void main(String[] args){ Scanner scan = new Scaner(System.in); int m = 0;//正数个数 int n = 0;//负数个数 while(true){//当循环条件不固定时,可以将循环条件设置为true,但是不限制循环次数,因此需要循环条件返回false,或者循环体中配合break使用。 int num = scan.nextIn(); if(num < 0){ n++; }else if(num > 0){ m++; }else{ break; } } System.out.println("正数个数为"+m); System.out.println("负数个数为"+n); } }
嵌套循环的使用:
嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环;分为外层循环和内层循环。
内层循环结构遍历一遍,只相当于外层循环执行了一次;
假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环一共执行了m*n次;
外层循环控制行数,内层循环控制列数。
练习:
输出四排***
for(int i = 0;i <= 4;i++){ for(int j = 0;i < 4;j++){ System.out.print("*"); } System.out.println(); }
输出菱形:
class test{ public static void main(String[] args){ for(int i = 0;i < 5;i++){ for(int j = 0;j < 4-i;j++){ System.out.print(" "); } for(int k = 0;k < i+1;k++){ System.out.print("* "); } System.out.print(); } for(int i = 0;i < 4;i++){ for(int j = 0;j < i+1;j++){ System.out.print(" "); } for(int k = 0;k < 4-i;k++){ System.out.print(" "); } System.out.print(); } } }
输出九九乘法表:
class NineNineTable{ public static void main(String[] args){ for(int i = 0;i <= 9;i++){ for(int j = 0;j <= i;j++){ System.out.print(i+"*"+j+"="+(i * j)); } } System.out.println(); } }