• Linux centos7 bash编程训练__打印各类形状


    利用for循环,打印各种不同的三角形、矩形和菱形。

    主要是fort循环嵌套使用,及条件判断等。

    因方法简单,不作更多解释,部分注释可以帮助初学者掌握代码。

    下面列出代码,供参考。

    #! /bin/bash

    ## 打印输出各种*型形状
    ## 训练打印输出代码

    echo "打印单行*号"
    for i in {1..6};do echo -n "*";done;echo

    echo
    echo "打印单行*号(有空格)"
    for i in {1..6};do echo -n "* ";done;echo
    echo "==========================="

    echo "打印*型直角三角形"
    for i in {1..6};do for ((j=1;j<=i;j++));do echo -n "*";done;echo;done
    echo
    echo "+++++++++++++++++++++++++++"
    echo "打印*型直角三角形(有空格)"
    for i in {1..6};do for ((j=1;j<=i;j++));do echo -n "* ";done;echo;done
    echo
    echo
    echo "==========================="
    echo "打印实心三角形"
    for ((i=1; i<10; i++));do
        for ((n=10; n>=i; n--));do
            echo -n " "
        done
            for ((m=1; m<=i; m++));do
                 echo -n "* "
            done
             echo
    done

    echo
    echo "---------------------"
    echo "打印空心三角形"

    for ((i=1;i<=10;i++))
    do
        for ((j=1;j<=$((10-$i));j++))
        do
            echo -n " "
        done

        for((j=1;j<=$((2*$i-1));j++))
        do
            if [ $j -eq 1 -o $j -eq $((2*$i-1)) -o $i -eq 10 ]
            then
                echo -n "*"
            else
                echo -n " "
            fi
        done
        echo
    done
    echo
    echo "==========================="
    echo "打印*型矩形"

    for i in {1..6};do for ((j=6;j>0;j--));do echo -n "* ";done;echo;done
    echo
    echo  "+++++++++++++++++++++++++++"
    echo "打印*型空心矩形"
    for ((i=1;i<=10;i++))   #外循环循环十遍,这是输出10行
    do
        if ((i>1 && i<10))
        then   #当i值大于1,小于10成立
            echo -n "*"          #不换行输出1个*
            for ((j=1;j<=8;j++))    #k初始值为1,当j值小于等于8,条件成立,每次j值加1
            do
                echo -n "  "  #不换行输出二个空格
            done
            echo -n " *"        #不换行输出一个 *
        else
            for ((n=1;n<=10;n++)) #内循环循环十遍,矩形的列10个*
            do
                echo -n "* "   # 不换行输出符号“* ”
            done
        fi
        echo  #内循环结束,换一次行
    done
    echo "------------------------------"

    echo  "打印菱形"
    echo  "下面的案例为键盘录入一个数,打印一定形状的菱形"

    read -p "请输入菱形大小:" number
    for ((i=0-number+1;i do
        if ((i>=0))
        then
                  ## 正数取原值
            num=$i
          else
                ##负数取绝对值
            num=${i:1} ##变量切片,不要首位字符
          fi

          for ((j=num;j>0;j--))
          do
            ##打印空格
            echo -n " "
          done

          for ((k=1;k<=2*(number-num)-1;k++))
          do
               ##打印"*"
               echo -n "*"
          done
          echo
    done
    部分效果图如下:

    本代码主要使用的是for。当然也可以用while实现。

  • 相关阅读:
    JUC笔记(一) --- 计算机基础
    CentOS配置本地yum源
    前端基础之JavaScript
    刷题记录:牛客NC16708[NOIP2002]过河卒
    猿创征文|【Linux Debug】有了core-dump,Bug一举拿下!
    SpringBoot学习之注解校验参数@Validated@Valid
    Java Reader类简介说明
    IDC 中国边缘云市场最新报告解读:阿里云蝉联中国公有云市场第一
    微信小程序通过官方内置函数实现WebSocket
    14. UE5 RPG使用曲线表格设置回复血量值
  • 原文地址:https://blog.csdn.net/qq_36142959/article/details/132812466