嵌套循环的使用:
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("\n");
/*输出:
******
******
******
******
*/
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();
}
}
}