A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   之前做过一道基础测试题,题目是用控制台程序倒着输出九九乘法表;输出结果按下图所示:
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
  ......
1*3=3 2*3=6 3*3=9
1*2=2 2*2=4
1*1=1
   这种题就涉及到了嵌套循环,下面我把循环嵌套和得出的一个小规律及正的和倒的九九乘法表总结了下,和大家分享,希望为大家解除疑惑,当然了大家一起共勉,多分享些知识。
//嵌套循环
//1、打印如下图形
/*
*****
****
***
**
*
*/
package com.itheima;
public class NoteFor_test {
    public static void main(String[] args) {
    for(int x=0;x<5;x++)//外循环控制着行数,这里有5行
    {
       for(int y=x;y<5;y++)//内循环控制每一行的列数
       {   
           System.out.print("*");//不换号打印*
       }
    System.out.println();
    }
    }   
}
//嵌套循环
//2、打印如下图形
/*
*
**
***
****
*****
*/
package com.itheima;
public class NoteFor_test {
    public static void main(String[] args) {
    for(int x=0;x<5;x++)//外循环控制着行数,这里有5行
    {
       for(int y=0;y<=x;y++)//内循环控制每一行的列数,
       {   
           System.out.print("*");//不换号打印*
       }
    System.out.println();
    }
    }   
}
通过以上两种图,可以得出一个不是规律的规律:
尖朝上,内循环可以改变条件,让条件随着外循环变化;
尖朝下,内循环可以改变初始化值,让初始化值随着外循环变化

通过下面九九乘法表又可推翻上个不是规律的规律,所以上述规律并不适合所有
/*
打印九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=8  
*/
package com.itheima;
public class jiujiuchengfabiao {
    public static void main(String[] args) {
       for(int x=1;x<=9;x++)
       {
           for(int y=1;y<=x;y++)
           {
              System.out.print(y+"*"+x+"="+y*x+"\t");//加上制表符\t使图形成表格形式对齐,因为有个位和十位,不加的话排列不齐
           }   
           System.out.println();
       }   
    }
}
控制台:
未加\t结果图形存在不对齐:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
加上\t结果对齐:
1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
package com.itheima;
/**
* 用控制台程序倒着输出九九乘法表;输出结果按下图所示:
* 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
* ......
* 1*3=3 2*3=6 3*3=9
* 1*2=2 2*2=4
* 1*1=1
* @author xiaowei
*
*/
public class Test8 {
    public static void main(String args[]){
       //改进版:
       for(int x=9;x>=1;x--)//列,递减
       {
           for(int y=1;y<=x;y++)//行,递增
           {
              System.out.print(y+"*"+x+"="+y*x+"\t");//行和列再反向;加上\t可以是图形对齐,因为有个位和十位,不加的话排列不齐
           }   
           System.out.println();
       }
       }
}
控制台:
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*4=4  2*4=8  3*4=12 4*4=16
1*3=3  2*3=6  3*3=9  
1*2=2  2*2=4  
1*1=1

评分

参与人数 1黑马币 +5 收起 理由
乔兵 + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马