编程while循环如果有两个不同条件该怎样设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程while循环如果有两个不同条件该怎样设置?相关的知识,希望对你有一定的参考价值。

即 while (条件1)且(条件2),条件1一开始就有,但条件2想要再循环3次后才开始判断,这种情况该怎样处理?

用&&或者||来结合判断。
如果两个条件要同时满足,就用&&,当两个条件同时满足的时候才能满足条件。
如果两个条件只要一个满足就满足,就用||。
这两个是逻辑判断一个是&(与)一个是||(或)可以在搜索看看。
参考技术A tiaojian1=1
tiaojian2=1
i=1
do while tiaojian1 and tiaojian2
if 你的条件 then
tiaojian1=0
end if
if i>4 then
if 你的条件 then
tiaojian2=0
end if
end if

你的操作
i=i+1
loop本回答被提问者采纳

shell脚本编程循环之for/while/untill循环

循环执行: 将一段代码重复执行0、1或多次;

进入条件:条件满足时才进入循环;

退出条件:每个循环都应该有退出条件,以有机会退出循环;


bash脚本:

     for循环

     while循环

     until循环


for循环:

两种格式:

    (1) 遍历列表

    (2) 控制变量


(1)遍历列表:

for  VARAIBLE  in  LIST; do

    循环体

done



进入条件:只要列表有元素,即可进入循环;

退出条件:列表中的元素遍历完成;


LISTT的生成方式:

(1) 直接给出;

(2) 整数列表

(a) {start..end}

(b) seq [start  [incremtal]] last

(3) 返回列表的命令

(4) glob 

(5) 变量引用

[email protected], $*

示例:添加三个用户 

#!/bin/bash
#
for username in user21 user22 user23; do
    if id $username &> /dev/null; then
        echo "$username exists."
    else
        useradd $username && echo "Add user $username finished."
    fi
done


示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
for i in {1..100}; do
    echo "\$sum is $sum, \$i is $i"
    sum=$[$sum+$i]
done
echo $sum


示例:判断/var/log目录下的每一个文件的内容类型

#!/bin/bash
#
for filename in /var/log/*; do
    if [ -f $filename ]; then
        echo "Common file."
    elif [ -d $filename ]; then
        echo "Directory."
    elif [ -L $filename ]; then
        echo "Symbolic link."
    elif [ -b $filename ]; then
        echo "block special file."
    elif [ -c $filename ]; then
        echo "character special file."
    elif [ -S $filename ]; then
        echo "Socket file."
    else
        echo "Unkown."
    fi
done

for循环格式:

for  VARAIBLE  in  LIST; do

    循环体

done

for循环实现9*9乘法表

#!/bin/bash
#
for j in {1..9}; do
    for i in $(seq 1 $j); do
        echo -n -e "${i}X${j}=$[${i}*${j}]\t"
    done
    echo 
done



while循环:

while  CONDITION; do

    循环体

    循环控制变量修正表达式

done


进入条件:CONDITION测试为”真“

退出条件:CONDITION测试为”假“

示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1

while [ $i -le 100 ]; do
    let sum+=$i
    let i++
done
echo $sum


until循环:

until  CONDITION; do

     循环体

     循环控制变量修正表达式

done


进入条件:CONDITION测试为”假“

退出条件:CONDITION测试为”真“

示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1
until [ $i -gt 100 ]; do
    let sum+=$i
    let i++
done
echo $sum


while循环的特殊用法(遍历文件的行):

while  read  VARIABLE; do

    循环体;

done  <  /PATH/FROM/SOMEFILE

依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将基赋值给VARIABLE变量;

示例:找出ID号为偶数的用户,显示其用户名、ID及默认shell;

#!/bin/bash
#
while read line; do
    userid=$(echo $line | cut -d: -f3)
    username=$(echo $line | cut -d: -f1)
    usershell=$(echo $line | cut -d: -f7)
    if [ $[$userid%2] -eq 0 ]; then
        echo "$username, $userid, $usershell."
    fi
done < /etc/passwd

for循环的特殊用法:

for  ((控制变量初始化;条件判断表达式;控制变量的修正语句)); do

循环体

done

控制变量初始化:仅在循环代码开始运行时执行一次;

控制变量的修正语句:每轮循环结束会先进行控制变量修正运算,而后再做条件判断;

示例:求100以内所有正整数之和

#!/bin/bash
#
declare -i sum=0
for ((i=1;i<=100;i++)); do
    let sum+=$i
done
echo "Sum: $sum."


示例:打印九九乘法表

#!/bin/bash
#
for ((j=1;j<=9;j++)); do
    for ((i=1;i<=j;i++)); do
        echo -e -n "${i}X${j}=$[${i}*${j}]\t"
    done
    echo
done


本文出自 “汪立明” 博客,请务必保留此出处http://afterdawn.blog.51cto.com/7503144/1916005

以上是关于编程while循环如果有两个不同条件该怎样设置?的主要内容,如果未能解决你的问题,请参考以下文章

如果函数内部的条件失败,则跳过 bash while 循环

c语言中的do while语句怎样理解

while 循环语句

SQL语句中怎样循环插入规律数据啊??

C++中,do while, for loop和while loop之间有啥不同

流程控制之if判断+while循环+for循环