跳出循环与shift左移参数的应用

break和continue操作对于跳出当前操作月当前循环的区别

一、break和continue的应用于循环操作中,而break能够使当前语句退出,而continue则仅是退出当前操作并进入下次循环。

实例:

#!/bin/bash
while true
do
echo "******************************"
echo "**   请选择一下可操作选项   **"
echo "**    1)复制        **"
echo "**    2)删除        **"
echo "**    3)备份        **"
echo "**    4)退出        **"
echo "******************************"
read -p "逆选择的操作是:" sel
        case $sel in
                1)
                echo "接下来的操作是复制"
                continue
                ;;
                2)
                echo "接下来的操作是删除"
                continue
                ;;
                3)
                echo "接下来的操作是备份"
                continue
                ;;
                4)
                echo "接下来的操作是退出当前操作"
                break
                ;;
                *)
                echo "error.$sel不是可用操作,请输入[1|2|3|4]"
                esac
done
运行结果
[[email protected] break]# sh bread.sh 
******************************
**   请选择一下可操作选项   **
**    1)复制        **
**    2)删除        **
**    3)备份        **
**    4)退出        **
******************************
逆选择的操作是:2
接下来的操作是删除

二、利用shift参数左移指令做乘法器

shift左移指令是指,参数序列在每次执行后向左移动以为,即$#的值减1,用于分别处理每个参数,移除去的参数将不能再重复使用。例如下列代码的功能是制作一个乘法器,具体代码如下。

#!/bin/bash
if [ $# -le 0 ] ; then
        echo "err:NOT enough paremeter"
        exit 122
fi
accu=1
while [ $# -gt 0 ]
do
        ((accu=accu\*$1))
shift
done
echo $accu
[email protected] shift]# chmod u+x ./cfq.sh 
[[email protected] shift]# ./cfq.sh 2 3 4
24

特殊符号:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1 是传递给该shell脚本的第一个参数

$2 是传递给该shell脚本的第二个参数

[email protected] 是传给脚本的所有参数的列表

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

时间: 2024-10-13 16:51:14

跳出循环与shift左移参数的应用的相关文章

for循环与for in,$('').each 与$.each的区别

一:for循环与for in的区别 for...in 语句用于对数组或者对象的属性进行循环操作. 语法: for (变量 in 对象){    在此执行代码} for循环是对数组的元素进行循环,而不能引用于非数组对象(类数组对象也可以遍历). 语法: for(int 变量初始值;条件;递增或递减){    在此执行代码} 用for in遍历window对象的属性. for(var prop in window){ console.log(winodw[prop ]) } 用for inb遍历数组

php中for循环与foreach循环效率比较

昨日晚上,在不经意间听到别人说php中for循环效率比foreach高,尽量多用for循环可以提高php效率. 听到这个论调,我当时一愣,for每次循环前都要进行判断,而foreach只需在数组内部移动指针,for的效率会比foreach要高? ------------------- 今天特地写了个简单的脚本做了测试(以下结果皆采用多次测试后的平均值) $max = 100000; $arr = range(0,$max); $t1 = microtime(true); for($i = 0;$

Python语法基础03(if语句,while循环与for循环)

if语句:语法:单分支if 判断条件:语句块 执行过程:首先执行判断条件,当条件成立则执行判断条件下面的语句块,若条件不成立,则不执行 双分支if 判断条件:语句块1else:语句块2执行过程: 首先执行判断条件,若条件成立则执行语句块1,若条件不成立,则执行语句2. 多分支if 判断条件1:语句块1elif 判断条件2:语句块2elif 判断条件n:语句块nelse:语句块执行过程:首先执行判断条件1,若成立则执行语句块1,若不成立,则执行判断语句2,若条件成立,则执行语句块2,若不成立,依次

for循环与foreach

注意点: for循环时,可以对集合进行操作,但foreach循环中,对集合进行操作会报错:                  for 循环可以获取下标 如下代码: package com.tt; import java.util.ArrayList;import java.util.List;import java.util.Objects; public class TextMain { public static void main(String[] args) {      List<St

Java 基础中for循环与while循环的语感

for(int i = X; i < y; i ++ ){ 循环体: }: 主要用于已知循环次数循环,可以节约2行代码和变量名重复使用,是java编程中最常用的循环. int n = 0; while(循环条件){ 循环体: n++; }: 主要用于未知循环次数的循环中,是除了for循环最常用的循环: JAVA 基础一定要吃透这两种循环,编程逻辑才不会混乱.

for循环与while循环的补充

1.通过循环可以用解决两类问题:  穷举:在不知道什么情况下才真的是我们需要的结果的时候,只能让它一个一个的情况都给走一遍.  迭代:在现有的条件下,根据规律,不断求解中间状况,最终推到出结果. 举例:公司给发了150元的购物卡,刚好想去超市购买洗发水(15元).牙刷(5元).香皂(2).只买着三个种类的商品,要求全部花完150元,有多少种买法,每种买法都是各买几样? <script> var sum=0; for(var x= 0;x<=10;x++) { for(var y =0;y

for循环与while循环组合使用

适用于内层while循环中的产生的某个条件依赖于外部的for循环 例子如下 public class Test {     public static void main(String[] args) throws InterruptedException {          Random rand = new Random();          int[] str = {1,2,3,4};          for(int i=0;i<str.length;i++){          S

C#语句——循环语句(for循环与for循环嵌套)

循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变. for(初始条件;循环条件;状态改变) { 循环体 } break ——中断循环,跳出整个循环 continue——停止本次循环,进入下次循环. 注:●执行步骤:初始条件——循环条件——循环体——状态改变. ●死循环:出不来,一直在执行 for (; ; ) { Console.WriteLine("你好"); } 一.for循环例题 1.找出100以内与7有关的数并打印:(1).从1找到100(2).找出与

Qt ------ 主事件循环与 QEventLoop

1.事件循环一般用exec()函数开启.QApplicaion::exec().QMessageBox::exec()都是事件循环.其中前者又被称为主事件循环. 事件循环首先是一个无限"循环",程序在exec()里面无限循环,能让跟在exec()后面的代码得不到运行机会,直至程序从exec()跳出.从exec()跳出时,事件循环即被终止.QEventLoop::quit()能够终止事件循环. 其次,之所以被称为"事件"循环,是因为它能接收事件,并处理之.当事件太多而