for 循环打印图形

时间:2021-12-02 19:29:17
public class For {
public static void main(String[] args) {

//“使用双层for循环打印图形时,外层管行,内层管列”,那么是怎样的原理呢? 那么举个栗子!看下面:

//炒栗子1:利用“*”打印出一个长宽为5的矩形图案

for(int i=1;i<=5;i++){
 for(int k=1;k<=5;k++){
  System.out.print("*");
  }                             //小知识:print与println的区别在于println多了个换行符“\n”,等价于print("\n")
 System.out.println();
}
/*  生成了如下图形:
 *  *****
 *  *****
 *  *****
 *  *****
 *  *****
 */

//炒栗子2:利用“*”分别打印出一个高为5的正直角三角形,和一个倒直角三角形

for(int i=1;i<=5;i++){
    for(int k=1;k<=i;k++){
        System.out.print("*");
    }
    System.out.println();
}                                   //重点:改变内循环的条件可以使列递增
/*生成正直角三角形
 *    *
 *    **
 *    ***
 *    ****
 *    *****
 */
for(int i=1;i<=5;i++){
    for(int k=5;k>=i;k--){
        System.out.print("*");
    }                                //重点:同时改变内循环的初值和条件可使列递减。
    System.out.println();
}
/*  生成倒直角三角形
 *  *****
 *  ****
 *  ***
 *  **
 *  *
 */

//糖炒栗子3:作出个乘法口诀表

for(int i=1;i<=9;i++){
    for(int k=1;k<=i;k++){
      System.out.print(k+"*"+i+"="+i*k+"\t");  //重点:内部实现只不过是把星星替换成了一个拼接的字符串,由此可见其循环出的就是一个直角三角图形。
    }                                                             //小知识:“\t”是水平制表符Tab键,会自动缩进空格使内容对齐
    System.out.println();
}
 /*
  * 生成图形,自行脑补~~~
  */

//爆炒栗子4:对元素为10个数字的数组进行冒泡排序
//冒泡原理:有n个数,那么就会冒n-1轮,每一轮都是从第一个元素开始,每次都是和它的下一个比,冒出的就不用再管了。

int arr[]={1,50,32,65,17,54,25,77,69,100};
for(int i=0;i<arr.length-1;i++){
    for(int k=0;k<=i;k++){
        if(arr[k]>arr[k+1]){       

            int t=arr[k];         //arr[k+1]=arr[k]+arr[k+1];
            arr[k]=arr[k+1];     //arr[k]=arr[k+1]-arr[k];
            arr[k+1]=t;          //arr[k+1]=arr[k+1]-arr[k];
        }     //这里我给出了两种替换方法,一个是借助第三个变量,一个是相互加减,不明白的我下面举个小栗子
    }
}
for (int i=0;i<arr.length;i++){
       System.out.println(arr[i]);
    }

//小栗子:创建两个不相等的int型变量,不通过第三个变量使他们的值交换。
int c=5;int u=1;
u=c+u;   //u=6 c=5
c=u-c ;  //u=6 c=1
u=u-c ;  //u=1 c=5 先运算后赋值
System.out.println(c+","+u);

//爆炒栗子5:依据上个栗子 从第10个元素开始冒泡排序

//我在思考冒泡算法的时候,首先脑海里会形成一个图形,然后立马就知道用什么形式的嵌套循环,把问题图形化。

for(int i=0;i<arr.length-1;i++){
   for(int k=arr.length-1;k>i;k--){
       if(arr[k]<arr[k-1]){
           arr[k]=arr[k]+arr[k-1];
           arr[k-1]=arr[k]-arr[k-1];
           arr[k]=arr[k]-arr[k-1];
       }
   }
}
for (int i=0;i<arr.length;i++){
   System.out.println(arr[i]);
}

//最后举个干炒栗子(没难度,力气活):利用for循环输出以下图形
//      12345
//      2   4
//      3   3
//      4   2
//      54321

//经过上面的练习,其本质就是一个矩形图形。 只不过内层循环输出的东西不同罢了。
//第一行和第五行的循环规律类似,二至四行类似,且列是数和空格组成的。

for(int i=1;i<=5;i++){
    for(int k=1;k<=5;k++){
          if(i==1){                           //第一行
              System.out.print(k);
          }else if(i==5){                     //第五行
              System.out.print(i-k+1);
          }else{                              //第二至四行
              if(k==1){                       //第一列
                  System.out.print(i);
              }else if(k==5){                 //第五列
                  System.out.print(k-i+1);
              }else{                          //第二至四列

                  System.out.print(" ");
              }
          }
    }
    System.out.println();
}

}
}

for 循环打印图形的更多相关文章

  1. java中使用二重循环打印图形

    如图所示:打印沙漏图形 1:因为外层循环控制图形行数,所以首先判断这四个选项能否循环五次 2:以上四个循环的表达式都能循环五次,我们从内层循环入手. A:int i=0;i<5;i++ 当i=1 ...

  2. java08双重循环打印图形

    // 九九乘法表 外层循环每执行一次,内层循环执行一遍 for (int i = 1; i <= 9; i++) { // 外层控制的是行数 for (int j = 1; j <= i; ...

  3. java基础08 双重循环打印图形

    public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...

  4. C&num;利用for循环打印图形练习题

    (1) namespace ConsoleApp2 { class Program { static void Main(string[] args) { ; i < ; i++)//外层循环控 ...

  5. python中for嵌套打印图形

    # 打印出九九乘法表 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 1 ...

  6. &lbrack;Python&rsqb; For 嵌套循环打印图形 nested loop-练习题答案

    前一篇:[Python] For 嵌套循环打印图形 nested loop-练习题 [python的for循环嵌套打印如下图形] 图形一: 输出结果: ******* ******* ******* ...

  7. &lbrack;Python&rsqb; For 嵌套循环打印图形 nested loop - 练习题

    [python的for循环嵌套打印如下图形] 图形一: ******* ******* ******* ******* 图形二: * *** ***** ******* 图形三: * *** **** ...

  8. C语言回滚&lpar;二&rpar;--循环打印

    //1.用循环打印 /* FFEFEDFEDCFEDCBFEDCBA */ #include <stdio.h> #include<stdlib.h> int main(){ ...

  9. 编程题:利用for循环打印 9&ast;9 表&quest;

    利用for循环打印 9*9  表? 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  ...

随机推荐

  1. ansible定时任务

    不得不说,ansible很强大,ansible定制任务模块显示 ansible all -m cron -a 'name="ban IP of login" minute=* ho ...

  2. ORA-12170:TNS:连接超时

    本文转自 http://www.cnblogs.com/kerrycode/archive/2012/12/14/2818421.html 1:首先检查网络是否能ping通 2:检查TNS配置(TNS ...

  3. 强大的内网劫持框架之MITMf

    Mitmf 是一款用来进行中间人攻击的工具.它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端.下面让我们一起看看如何在 Kali2.0上安装使用 Mitmf ...

  4. Aspose&period;Cells 读取Excel数据到DataTable

    C#代码: Workbook workbook = new Workbook(); workbook.Open(excelfile); Cells cells = workbook.Worksheet ...

  5. VC运行库版本不同导致链接&period;LIB静态库时发生重复定义问题的一个案例分析和总结

    转帖:http://blog.csdn.net/whygosofar/article/details/2821875 MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Lib ...

  6. Java学习02

    Java学习02 1.导入内部的包 一.在包的下面加入下面一句话: import    java.util.Scanner; 二.在类中 Scanner input=new     Sanner(Sy ...

  7. 基于 EntityFramework、Autofac 的 UnitOfWork 框架(一)

    之前公司项目参考 NopCommerce 开发了一套系统,但是不支持 UnitOfWork,最近想开发新的项目,所以就基于原有的基础上又添加 UnitOfWork 支持,由于目前正在逐步完善中,所以可 ...

  8. 学习笔记 Optional

    今天学习到的一种新的防止空指针的方法下面是我自己写的一个例子:节省空间,bean的get set 省略... /** * 类目 * @author 唐 * @date 2018/5/6 17:45 * ...

  9. Anaconda3下安装Anaconda2

    一.下载软件 下载Anaconda Python3.6版本和Anaconda Python2.7版本.下载地址:https://www.anaconda.com/download/ 下载需要FQ,也可 ...

  10. ubuntu16安装squid代理服务器

    如果有一台电脑可以上网,想让其他电脑通过代理上网.可以使用这种方法. 1 安装squid sudo apt-get update sudo apt-get install squid 2 修改配置文件 ...