9、循环语句中break和continue的使用

回顾bash编程之循环控制:
for varName in LIST; do
循环体
done

while CONDITION; do
循环体
done

until CONDITION; do
循环体
done

下面学习循环控制:
continue: 提前结束本次循环而开始评估下一轮;
break [n]: 跳出当前循环,去执行本次循环体外的语句,n控制跳出底基层循环,默认是第一层

练习:求100以内所有偶数之和;
declare -i evenSum=0
declare -i i=1

while [ $i -le 100 ]; do
if [ [$i%2] -eq 1 ]; then
let i++
continue
fi
let evenSum+=$i
let i++
done

练习:提示用户输入用户名,显示用户的ID号;直到用户输入quit退出;
脚本中有这一种break可以退出死循环
#!/bin/bash
#
if [ $UID -ne 0 ]; then
echo "basename $0 must be running as root"
exit 1
fi

while true; do 这里是一个死循环,只写一个true就行了
read -p "Enter a user name: " userName
if [ "$userName" == ‘quit‘ ]; then
break
fi

id -u $userName
done
下面这一个是检查输入的用户是不是存在的用户(结合了continue和break)
#!/bin/bash
#
while true; do
read -p "Enter a user name: " userName
if [ "$userName" == ‘quit‘ ]; then
break
fi

    if ! id $userName &> /dev/null; then
            echo "$userName not exist."
            continue
    fi

        echo -e "this $userName uid is `id -u $userName`"

done

练习:写一个脚本,
1、提示用户输入一个磁盘设备的设备文件,如果设备文件不存在,就提示用户重新输入,直到用户输入正确为止;
2、用户可以输入quit退出;
#!/bin/bash
#
while true; do
read -p "Enter a block device file: " diskFile
if [ "$diskFile" == ‘quit‘ ]; then
exit 7
fi

if [ -b "$diskFile" ]; then
break
else
echo "Wrong device file..."
fi
done

练习:扩展前一题
当用户给出正确的块设备后:
1、显示用户输入块设备,并提示用户,后续的操作会损坏设备上的所有文件,让用户选择是否继续
2、如果用户输入y,则继续后面的操作;
3、如果用户输入n,则显示用户选择了中止,并退出脚本;
4、输入任何其它字符,则让用户重新选择;

练习:扩展上一题
1、如果用户选择了y, 则抹除指定块设备上的所有分区;
#!/bin/bash
#
while true; do
read -p "Enter a block device file: " diskFile
if [ "$diskFile" == ‘quit‘ ]; then
exit 7
fi

    if [ -b "$diskFile" ]; then   我们做字符串比较时,加上双引号,因为为空的时候不好判断,为空的时候也不知道他是不是文件,默认的这种比较时通过的
            break
    else
            echo "Wrong device file..."
    fi

done
echo "Device is: $diskFile."
while true; do
read -p "Y or y for continue, N or n for quiting: " option
option=echo $option | tr ‘A-Z‘ ‘a-z‘ 输入的任何字符都转换成小写的
if [ "$option" == ‘n‘ ]; then
exit 8
fi
if [ "$option" == ‘y‘ ]; then
break
else
echo "Wrong input..."
fi
done

dd if=/dev/zero of=$diskFile bs=512 count=1

练习:写一个脚本
1、提示用户输入一个目录路径;
2、显示目录下至少包含一个大写字母的文件名;

#!/bin/bash
#
while true; do
read -p "Enter a directory: " dirName
[ "$dirName" == ‘quit‘ ] && exit 3
[ -d "$dirName" ] && break || echo "Wrong directory..."
done

for fileName in $dirName/; do
if [[ "$fileName" =~ .
[[:upper:]]{1,}.* ]]; then 这里的{}不需要反斜杠转意
echo "$fileName"
fi
done

练习:写一个脚本
前提:配置好yum源
1、如果本机没有一个可用的yum源,则提示用户,并退出脚本(4);如果此脚本非以
root用户执行,则显示仅有root才有权限安装程序包,而后退出(3);
2、提示用户输入一个程序包名称,而后使用yum自动安装之;尽可能不输出yum命令执行
中的信息;
如果安装成功,则绿色显示,否则,红色显示失败;
3、如果用户输入的程序包不存在,则显示错误后让用户继续输入;
4、如果用户输入quit,则正常退出(0);
5、正常退出前,显示本地共安装的程序包的个数;

原文地址:http://blog.51cto.com/425319153/2092868

时间: 2024-10-08 10:13:53

9、循环语句中break和continue的使用的相关文章

循环语句中break 与 continue的区别

循环语句中break 与 continue的区别 总结: 1 break; while循环break是用于永久终止循环.即不执行本次循环中break后面的语句,直接跳出循环. 2continue; while循环continue是用于终止本次循环.即本次循环中continue后面的代码不执行,进行下一次循环的入口判断. #include<stdio.h> //break; int main() { int i = 0; while (i <= 10) { if (i == 5) brea

Javascript for循环语句以及break和continue的使用

For循环 格式 For(初始化表达式:条件:递增表达式){ 语句 } 特点 语句格式简洁 循环条件固定 break和continue1.break使用方法 想结束循环时使用 2.continue使用方法 直接省略continue后的语句,执行下一次循环 3.两者比较 使用场合: break:用于switch和循环结构 continue:只用于循环结构 作用: break:终止循环,跳出循环体,直接执行循环外的第一次语句 continue :直接省略continue后的语句,执行下一次循环 原文

java中break、continue及标签等跳转语句的使用[上]

java 中跳转语句使用break.continue和标签,各自或组合完成相应的功能. 今天做题时遇到关于标签命名规范,顺便将跳转语句语法都看了一遍,很有收获. 在<Java编程思想>一书中,作者详细阐述,现将案例代码写在下面: public class LabeledFor { public static void main(String[] args) { int i=0; outer: for(;true;){ inner: for(;i<10;i++){ System.out.p

Java 中break和continue结合标签标示符中断循环示例详解(附源码)

臭名昭著的goto 编程语言中一开始就有goto关键词了.事实上,goto起源于汇编语言的程序控制:"若条件A成立,则跳到这里:否则跳到那里".如果阅读由编译器最终生成的汇编代码,就会发现程序控制里包含了许多跳转.(Java编译器生成它自己的"汇编代码",但是这个代码是运行在Java虚拟机上的,而不是直接运行在CPU硬件上.) goto语句是在源码级上的跳转,这使其招致了不好的声誉.若一个程序总是从一个地方跳到另一个地方,还有什么办法能识别程序的控制流程呢?自从Ed

java中break和continue跳出指定循环(转载)

java中break和continue跳出指定循环 java中break和continue可以跳出指定循环,break和continue之后不加任何循环名则默认跳出其所在的循环,在其后加指定循环名,则可以跳出该指定循环(指定循环一般为循环嵌套的外循环). break跳出指定循环示例代码: loop1:for(int x = 0; x < 4; x++) { loop2:for (int y = 0; y < 5 ; y++ ) { System.out.println("x=&quo

JAVA中Break与Continue

在使用循环语句的时候,只有当循环条件的表达式为假时,才会跳出循环.有时候我们想提前跳出循环,那么就需要在循环内部使用break或者continue. break可以终止循环和switch语句.一个无标号的break会把控制转移到当前(最内)循环(while,do....while,for或switch)的下一条,如果有标号,会转移到带有该标号的语句处.例如: 1 package com.review.chapter2; 2 3 public class TestBreak { 4 public

04、Java基础语法(循环嵌套、break、continue、方法、方法的重载、数组动态初始化)

复习: 流程控制语句 - 顺序结构 - 分支结构 - if-else - switch - 循环结构 - for - while - do...while 1.循环嵌套 2.控制循环的语句 3.方法 4.方法的重载 5.数组的动态初始化 1.循环嵌套 ctrl + alt + L 格式化代码 "\n"换行符 "\t"制表符 九九乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++)

循环语句中的else

1. 循环语句中的else是什么意思? 循环语句一般是用来遍历一组值的过程, else就是再最后补一下刀, 也就是说当for或while正常执行结束之后, 会再次执行一次else里面的内容. 样例代码: # -.- coding:utf-8 -.- __author__ = 'zt' for i in range(5):     print i else:     print "这里是else输出:", i+1           输出结果: 0 1 2 3 4 这里是else输出: 

循环语句中的continue与break 1.for语句中

举个例子: #include <iostream>#include <Windows.h>#include <string>using namespace std; int main (void){ int i = 0; string ret; for(int i = 0;i < 5; i++){ cout<<"开始第"<<i+1<<"次相亲"<<endl; cout<&