java流程控制——嵌套循环
嵌套循环的使用:
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环。
2.外层循环:循环结构B。 内层循环:循环结构A。
3.说明: ①内层循环结构遍历一遍,只相当于外层循环体执行了一次。 ②假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次。
4.技巧: 外层循环控制行数,内层循环控制列数。
class ForForTest { public static void main(String[] args) { //输出:****** //方式一: System.out.println("******"); //方式二: for (int i = 1;i <= 6;i++){ System.out.print(*); } System.out.println(" "); /*输出: ****** ****** ****** ****** */ for (int i = 1;i <= 4;i++ ){ for (int j = 1;j <= 6 ;j++ ){ System.out.print(*); } System.out.println(); } System.out.println(); /*输出: * ** *** **** ***** */ for (int i = 1;i <= 5;i++ ){//控制行数 for (int j = 1;j <= i ;j++ ){//控制列数 System.out.print(*); } System.out.println(); } System.out.println(); /*输出: **** *** ** * */ for (int i = 4;i >= 1 ;i-- ){ for (int j = 1;j <= i ;j++ ){ System.out.print(*); } System.out.println(); } System.out.println(); /*输出:(分为上部分的递增,下部分的递减) * ** *** **** ***** **** *** ** * */ for (int i = 1;i <= 5 ;i++ ){ for (int j = 1;j <= i ;j++ ){ System.out.print(*); } System.out.println(); } for (int i = 1;i <= 4 ;i++ ){ for (int j = 1;j <= 5 - i ;j++ ){ System.out.print(*); } System.out.println(); } System.out.println(); } }
嵌套循环练习1
九九乘法表的制作
class NineNineTable { public static void main(String[] args) { for (int i = 1;i <= 9 ;i++ ){ for (int j = 1;j <= i ;j++ ){ System.out.print(i + "*" + j + "=" + (i * j)+ " "); } System.out.println(); } } }
嵌套循环练习2
100以内的质数的输出。 质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。
最小的质数:2
class PrimeNumberTest { public static void main(String[] args) { boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值 for (int i = 2;i <= 100 ;i++ ){//遍历100以内的自然数 for (int j = 2;j < i - 1 ;j++ ){//j:去除i if (i % j == 0){//i被j除尽 isFlag = false; } } if (isFlag == true){ System.out.println(i); } //重置isFlag,因为isFlag不在循环体中。 isFlag = true; } } }
嵌套循环练习3
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6=1+2+3.编程:找出1000以内的所有完数。(因子:除去这个数本身的其他约数)
class PerfectNumber { public static void main(String[] args) { int sum = 0; for (int i = 1;i <= 1000 ;i++ ){ for (int j = 1;j < i ;j++ ){ if (i % j == 0){ sum += j; } } if (sum == i){ System.out.println(i); } //重置sum sum = 0; } } }
嵌套循环练习4
输出:
******
*****
****
***
**
*
class ForForExer { public static void main(String[] args) { for (int i = 1;i <= 6 ;i++ ){ for (int j = 1;j <= 7 - i ;j++ ){ System.out.print(*); } System.out.println(); } } }