流程控制----判断和循环

目录

一、判断

1、单分支结构

2、双分支结构

3、多分支结构

例题:判定成绩

二、循环

1、for循环

1、1带列表的for循环语句

例题:循环创建用户:用户名为user01-user20

1、2不带列表的for循环语句

1、3 类C风格的for循环语句

2、while循环

3、until循环语句

4、select循环语句

5 、嵌套循环

例题:打印九九乘法表


一、判断

1、单分支结构

(条件满足则执行,不满足则退出)

if <条件表达式>
then
    指令
fi
或者
if <条件表达式>;then
    指令
fi

2、双分支结构

(条件满足时执行指令1,不满足时执行指令2)

if <条件表达式>
then
    指令序列1
else
    指令序列2
fi

3、多分支结构

(存在多个条件,条件1满足时执行指令1,后续不执行;如果条件1不满足时,继续匹配条件2,如果满足则执行指令2,后续不执行,以此类推,直到匹配上为止。如果条件都不满足,则执行最后一步else后的指令)

if 条件表达式1
then
    命令序列1
elif 条件表达式2
then
    命令序列2
elif 条件表达式3
then
    命令序列3
else
    命令序列n
fi


例题:判定成绩


85-100 -》 A
70-84 -> B
60-69 -> C
0-59 ->D
程序的边界问题:>100, <0
必须输入的是数字:0-100

read -p "please enter your score: " score  ##用户输入分数

if [ $score -lt 0 ] || [ $score -gt 100 ]  
then
    echo "Please enter the correct score"  ##边界问题,当用户输入的分数小于0或者大于100时,提示用户输入正确的分数

elif [ $score -ge 85 ]
then
    echo "A"  ##用户输入的分数大于等于85且小于等于100时,打印A

elif [ $score -ge 70 ]
then
    echo "B"  ##用户输入的分数大于等于70且小于85时,打印B

elif [ $score -ge 60 ]
then
    echo "C"  ##用户输入的分数大于等于60且小于70时,打印C

else
    echo "D"  ##最后分数大于等于0且小于60时,打印D
fi

二、循环

1、for循环

1、1带列表的for循环语句

        带列表的for 循环通常用于将一组语句执行已知的次数,其基本语法如下:
for variable in list --variable称为循环变量,list是一个列表,可以是一系列的数字或者字符串,元素之间使用空格隔开
do
    statement1
    statement2 --循环体,即循环结构中重复执行的语句。for循环体的执行次数与list中元素的个数有关
    ...
done
        在带列表的for 语句执行时, Shell 会将 in 关键字后面的 list 列表的第 1 个元素的值赋给变量variable ,然后执行循环体;当循环体中的语句执行完毕之后, Shell 会将列表中的 第2 个元素的值赋给变量 variable ,然后再次执行循环体。当 list 列表中的所有的元素都被访问后, for 循 环结构终止,程序将继续执行done 语句后面的其他的语句。

例题:循环创建用户:用户名为user01-user20

[root@baiheng shell]# vim useradd.sh

for i in {01..20} ##拿到01-20这20个数
do
    useradd user$i ##循环添加user01-user20
    echo "123456" | passwd --stdin $user &> /dev/null ##给用户设置密码
done

[root@baiheng shell]# bash useradd.sh 

[root@baiheng shell]# tail -20 /etc/passwd --执行完成后查看
user01:x:1006:1007::/home/user01:/bin/bash
user02:x:1007:1008::/home/user02:/bin/bash
user03:x:1008:1009::/home/user03:/bin/bash
user04:x:1009:1010::/home/user04:/bin/bash
user05:x:1010:1011::/home/user05:/bin/bash
user06:x:1011:1012::/home/user06:/bin/bash
user07:x:1012:1013::/home/user07:/bin/bash
user08:x:1013:1014::/home/user08:/bin/bash
user09:x:1014:1015::/home/user09:/bin/bash
user10:x:1015:1016::/home/user10:/bin/bash
user11:x:1016:1017::/home/user11:/bin/bash
user12:x:1017:1018::/home/user12:/bin/bash
user13:x:1018:1019::/home/user13:/bin/bash
user14:x:1019:1020::/home/user14:/bin/bash
user15:x:1020:1021::/home/user15:/bin/bash
user16:x:1021:1022::/home/user16:/bin/bash
user17:x:1022:1023::/home/user17:/bin/bash
user18:x:1023:1024::/home/user18:/bin/bash
user19:x:1024:1025::/home/user19:/bin/bash
user20:x:1025:1026::/home/user20:/bin/bash

1、2不带列表的for循环语句

        在某些特殊情况下,for 循环的条件列表可以完全省略,称为不带列表的 for 循环语句。如果没有为 for 循环提供条件列表,Shell 将从命令行获取条件列表。不带列表的 for 循环语句的一般语法如下:
for variable (in $@或$*)--系统变量$@同样可以获取所有的参数
do
    statement1
    statement2
    ...
done

1、3 C风格的for循环语句

for ((expression1;expression2;expression3))
do
    statement1;
    statement2;
    ...
done
        在上面的语法中,for 循环语句的执行条件被 2 个圆括号包括起来。执行条件分为 3 个部分,由 2 个分号隔开,第1 部分 expression1 通常是条件变量初始化的语句;第 2 部分 expression2 是决定是否执行 for 循环的条件。当expression2 的值为 0 时,执行整个循环体;当 expression2 的值为非 0 时,退出 for 循环体。第3 部分,即表达式 expression3 通常用来改变条件变量的值,例如递增或者递减等。

2、while循环

while expression --表示while循环体执行时需要满足的条件
do
    statement1
    statement2
    ...
done
        通常情况下,expression 代表一个测试表达式,当 expression 的值为 0 时才执行循环体中的语句,每次执行到done 时就会重新判断 while 条件表达式是否成立,当 expression 的值为非 0 值时,将
退出循环体。与其他的循环结构一样, do done 2 个关键字之间的语句构成了循环体。

3、until循环语句

        until循环语句同样也存在于多种程序设计语言中。顾名思义, until 语句的作用是将循环体重复执行,直 到某个条件成立为止。until 语句的基本语法如下:
until expression
do
    statement1
    statement2
    ...
done
        在上面的语法中,expression是一个条件表达式。当该表达式的值不为 0 时,将执行 do done 之间的语 句;当expression 的值为 0 时,将退出 until 循环结构,继续执行 done语句后面的其它的语句。区别是while 循环在条件为真是继续执行循环,而until 则是在条件为假时执行循环。

4、select循环语句

        select循环语句的主要功能是创建菜单,在执行带有 select 循环语句脚本时,输出会按照数字顺序的列表 显示一个菜单,并显示提示符(默认是# ?),同时等待用户输入数字选择。 select 语句的基本语法如 下:
select 变量名 [ in 菜单值列表 ]
do
    statement1
    statement2
    ...
done

5 、嵌套循环

        在程序设计语言中,嵌套的循环也是一种非常常见的结构。Shell 同样也支持嵌套循环。通过嵌套循环,可以完成更复杂的功能。

例题:打印九九乘法表

[root@baiheng shell]# vim 99.sh
for(( i=1;i<=9;i++ ))
do
   for(( j=1;j<=9;j++ ))
   do
      [ $j -le $i ]  &&  echo -n "${i}*${j}=$((i*j))  " ##判断j是否小于i,当j大于i时不输出,输出不换行,末尾加一个制表符
   done
   echo "  "    #输出一个换行符             
done

[root@baiheng shell]# bash 99.sh 
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=12  4*4=16    
5*1=5  5*2=10  5*3=15  5*4=20  5*5=25    
6*1=6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36    
7*1=7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49    
8*1=8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64    
9*1=9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常好,可以通过以下代码实现1到10的循环输出: ``` for(int i=1; i<=10; i++){ System.out.println(i); } ``` 请问还有其他问题需要解答吗? ### 回答2: 在Java中,可以使用循环结构来实现1到10的循环。常见的循环结构有for循环、while循环和do-while循环。 首先,我们来看一下使用for循环打印1到10的方法。for循环是一种控制流程的结构,它可以重复执行一段代码一定的次数。具体实现如下: ```java for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` 上述代码中,循环的初始条件是i的初始值为1,循环条件是i小于等于10,每次循环结束后i自增1。 接下来,我们来看一下使用while循环打印1到10的方法。while循环会在循环开始之前检查循环条件,并在每次循环结束后重新检查循环条件。 具体实现如下: ```java int i = 1; while (i <= 10) { System.out.println(i); i++; } ``` 上述代码中,循环初始条件是i的初始值为1,循环条件是i小于等于10,每次循环结束后i自增1。 最后,我们来看一下使用do-while循环打印1到10的方法。do-while循环会在循环结束之后检查循环条件,这意味着循环体中的代码至少会执行一次。 具体实现如下: ```java int i = 1; do { System.out.println(i); i++; } while (i <= 10); ``` 上述代码中,循环体中的代码会至少执行一次,循环条件是i小于等于10,每次循环结束后i自增1。 以上是三种实现1到10循环的方法,它们分别是使用for循环、while循环和do-while循环。根据实际需求,选择合适的循环结构即可。 ### 回答3: Java的循环结构可以用来重复执行一段代码,使程序更加灵活和高效。常见的循环结构有for循环、while循环和do-while循环。下面是使用Java循环输出1-10的示例代码: 1. 使用for循环: ```java for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` 这段代码中,初始条件`int i = 1`表示循环变量的初始值为1;判断条件`i <= 10`表示循环条件,只有当i小于等于10时,循环会继续执行;每次循环结束后,执行语句`i++`会对循环变量进行递增操作,即i的值加1;循环体`System.out.println(i)`会输出当前循环变量的值。 2. 使用while循环: ```java int i = 1; while (i <= 10) { System.out.println(i); i++; } ``` 这段代码中,先将循环变量初始化为1;判断条件`i <= 10`表示只有当i小于等于10时,循环会一直执行;每次循环结束后,执行语句`i++`使循环变量i递增,然后循环体会输出当前循环变量的值。 3. 使用do-while循环: ```java int i = 1; do { System.out.println(i); i++; } while (i <= 10); ``` 这段代码中,先执行一次循环体,然后再判断条件;判断条件`i <= 10`表示只有当i小于等于10时,循环会继续执行;每次循环结束后,执行语句`i++`使循环变量i递增,然后循环体会输出当前循环变量的值。 以上就是使用Java循环输出1-10的示例代码,分别使用了for循环、while循环和do-while循环来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值