精华内容
下载资源
问答
  • while循环 万次阅读
    2020-01-10 17:19:07
    • while循环

    while语句用于循环执行程序,执行过程依赖指定条件

    语法:

    while(条件表达式):

             语句块

    示例

    x = 5
    
    count = 1
    
    while(x<=20):
    
        print("第%s次循环输出:"%count,x)
    
        x = x + 5
    
        count = count + 1

    当x小于等于20时,执行while内的语句块,打印x,并且将x的值增加5,第四次循环结束时,x的值为25,不再满足小于等于20,循环终止

    count用于记录循环次数,每次循环后次数增1

    结果输出

    第1次循环输出: 5

    第2次循环输出: 10

    第3次循环输出: 15

    第4次循环输出: 20

     

    • continue语句

    在循环的执行过程中,如果遇到continue语句,将结束本次循环,直接进行下一次循环

    示例

    weekDays = ["Monday","Tuesday","Wednesday","Thursday","Friday"]
    
    count = 0
    
    while(count<len(weekDays)):
    
        print(weekDays[count])
    
        count += 1
    
        continue
    
        print("遇到continue语句,本次循环结束")
    
        print("continue之后的代码不会被执行")

    结果输出

    Monday

    Tuesday

    Wednesday

    Thursday

    Friday

    可以看出continue之后的语句都没有执行

     

    • break语句

    break语句用于停止整个循环的执行

    示例

    weekDays = ["Monday","Tuesday","Wednesday","Thursday","Friday"]
    
    count = 0
    
    while(count<len(weekDays)):
    
        print(weekDays[count])
    
        if(weekDays[count] == "Wednesday"):
    
            print("终止整个循环")
    
            break
    
        count += 1

    结果输出

    Monday

    Tuesday

    Wednesday

    终止整个循环

    当循环执行到第三次的时候,if条件weekDays[2] == "Wednesday"成立,触发break,整个循环结束。

    更多相关内容
  • for while循环练习

    千次阅读 2022-04-01 14:20:52
    row += 1 解决方法4:while循环 i = 1 while i <= 5: j = 1 while j ('*',end='') #print('*') j = j+1 #print() print('')#输出空,将每一行隔开 #在i=1,j=1(即在每一个i输出完之后,均添加空行)时,...

    2022.3.31
    range函数
    range的用法 注意:3.x之后前面得加一个list(range())要不无法输出
    range(stop): 0~stop-1
    range(start,stop): start~stop-1
    range(start,stop,step): start~stop step(步长)

    for 循环
    for 循环使用的语法:(for循环可以加else语句,else语句后跟循环结束需要执行的代码,)
    break 语句可以用于跳出循环,可以用在 for 循环、while 循环、switch 循环中。当我们在一个循环中使用了break 语句,则会中断循环,但是仍会继续执行循环之后的代码。
    if 条件判断也能用break
    for 变量 in range(10):
    循环需要执行的代码
    else:
    循环结束时,需要执行的代码

    练习:
    例子1.分别求1~100内偶数之和

    #利用for循环求1~100内偶数之和
    sum = 0
    for i in range(0,101,2):#取偶数操作由步长为2的数列操作完成
        sum = sum+i
        print(sum)#for循环内输出会将每个结果都打印出来
    print(sum)#for循环之外输入只输出最终结果
    一定仔细思考print在不同位置时的输出
    0
    2
    6
    12
    20
    30
    42
    ...
    2256
    2352
    2450
    2550
    
    2550
    

    例子2:求阶乘即n!
    (本例亦可使用递归函数完成)

    def jiecheng(s):
        s = int(s)
        if s == 1 or s == 0:
            return 1
        else:
            return (s*jiecheng(s-1))
    

    for循环的嵌套
    例子3. 有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数

    sum = 0
    for i in (1,2,3,4):
        for j in (1,2,3,4):
                for k in (1,2,3,4):
                            if i != j and j!= k and i != k: 
                                           sum += 1
    print('共有%d种组合' %sum)
    

    例子4. 有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数,并展示出来

    for x in range(1,5):
        for y in range(1,5):
            for z in range(1,5):
                    if (x!=y) and (y!=z) and (z!=x):
                            print("%d%d%d" % (x, y, z))
    

    实现命令行提示符
    break:跳出整个循环,不会再执行循环后续的内容
    continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环
    exit():结束程序的运行
    例子5. 打印99乘法表

    for i in range(1,10):
        for j in range(1,i+1):
                print('%d * %d = %d\t' %(i,j,i*j),end='')
                #\t制表符,自动对齐后面的东西 end=‘’表示将输出 如果end='\n'则表示换行
        print()#表示执行完之前的print后换行 
    

    print函数的用法

    注意理解此代码中while的嵌套 嵌套时代码的退格操作
    temp = input('请输入一个整数:')
    number = int(temp)
    while number:
        i = number - 1
        while i:
            print('+', end='')
            i = i - 1
        j = number
        while j:
            print('*', end='')
            j = j - 1
        #print()#不加print()函数,则所有输出为一行
        number = number - 1
        不加print()时的输出 
        ++***+***print()的输出 
        ++***
        +**
        *
    

    例子6:用户登录管理系统,如下三点要求
    1.输入用户名和密码;
    2.判断用户名和密码是否正确(name=‘root’,passwd=‘westos’)
    3.登录仅有三次机会,超过3次会报错

    注意理解此代码中for循环与else语句的使用
    for i in range(1,4):#先用for循环限定登录次数
        user = input('请输入用户名:')
        password = input('请输入密码:')
        if user == 'root' or password == 'huahua':
            print('%s登录成功!'%user)
            break
        else:#循环内的if else语句需要对齐
            print('用户名或密码输入错误,请重新输入!',end='')#使两条print的语句输出为一行
            print('您还有%d次机会'%(3-i))
    else:#当循环内的所有代码(包括所有的if else语句)执行完之后,输出print之后的语句
        print('错误次数已超过三次,登录失败')#else的空格与for对齐    
    

    例子7:求最大公约数和最小公倍数,如下三点要求
    输入两个数值:
    求两个数的最大公约数和最小公倍数
    最小公倍数=(num1 * num2) / 最大公约数

    # 输入两个数字
    num1=int(input('Num1:'))
    num2=int(input('Num2:')) 
    # 找出两个数中的较小者
    min_num = min(num1,num2) 
    # 确定最大公约数
    # 思考该函数怎么能找出最大公约数
    for i in range(1,min_num+1):    
        if num1 % i ==0 and num2 % i ==0:        
            max_commer = i
    # 求最小公倍数
    min_commer =int(num1 * num2)/max_commer 
    print('%s 和 %s 的最大公约数为%s' %(num1,num2,max_commer))
    print('%s 和 %s 的最小公倍数为%s' %(num1,num2,min_commer))
    

    例子7的发散:
    求两个数的所有公约数,并输出最大、最小公约数

    #求两个数的所有公约数,输出所有公约数并单独输入最大公约数
    num1 = int(input('请输入一个整数:'))
    num2 = int(input('请输入一个整数:'))
    min_num = min(num1,num2)
    L = []
    for i in range(1,min_num+1):
        #L = []#L定义在循环内时,每次循环会对列表进行重新赋值,导致输出只输出一个数
        if num1 % i == 0 and num2 % i ==0:
            #L = []
            L.append(i)
            #print(i)
            #L.append(i)
            #print(L)
            #print(id(L))
        #print(L)#在此加print函数会导致每次循环结束后都进行输出,
    else:#与for循环相同的位格上写else函数,执行for循环结束后的结果
        print(L)
        L.sort()
        print(L[0],L[-1])
    #这两种代码输出结果是一样的
    print(L)
    L.sort()
    #L = L.sort()#对列表排序直接使用L.sort()即可,不能使用诸如L = L.sort的语句
    print(L[0],L[-1])
    

    二、while循环
    循环的作用就是让指定的代码重复的执行,while 循环最常用的应用场景就是让执行的代码按照指定的次数重复执行

    while 条件():    
        条件满足时,做的事情1    
        条件满足时,做的事情2
        ......
    

    1、基本用法
    注意:一定要注意循环内的退格用法

    # 定义一个整数变量,记录循环的次数
    i=1
    # 开始循环
    while i <= 3:    
    # 希望循环内执行的代码    
        print('hello python')    
        # 处理计数器
        i+=1
    

    死循环的例子:

    while True:
        print('hello python')#会一直循环输出
    

    例子1:3、求1~100之间数字的和

    #求1~100之间数字的和
    i = 1
    sum = 0
    while i <= 100:
        sum = sum+i
        i = i+1
        #print(sum)#注意print的位置
    print(sum)
    

    例子1发散:求100内所有偶数的和

    #发散 while循环求1-100内所有偶数的和
    i = 1
    sum = 0
    while i <= 100:
        if i % 2 == 0:
            sum = sum + i
        i = i+1#注意i = i+1这个式子是与if语句同位格的
    print(sum)
    

    例子2:用户登录管理

    i = 0
    while i <= 3:
        user = input('请输入用户名:')
        password = input('请输入密码:')
        if user == 'root' and password == 'huahua':
            print('%s登录成功!' %user)
            break
        else:
            print('用户名或密码输入错误,请重新输入!',end='')
            print('您还有%d次机会' %(3-i))
        i = i+1
    

    while 循环嵌套
    while 里面还有 while
    例子1:如下要求
    1.在控制台连续输出五行*,每一行星号的数量依次递增
    2.完成 5 行内容的简单输出 分析每行内部的*应该如何处理
    输出
    *
    **




    解决方法1:for循环

    # 1.控制行
        for i in range(6):
            # 2.控制*的数量
            for j in range(6):
                if i > j :
                    print("*",end='')
            print(" ")
    

    解决方法2:for循环

    for i in range(1,6):
        for j in range(1,i+1):
            print('*',end='')
        print()
    

    解决方法3:while循环

    #样式三:
    row = 1
    while row <= 5:      ##行循环5次,即外层的总循环次数
        col = 1
        a = 1            ###控制空格的输出次数
        while a <= 5-row:   ###空格的输出条件
            print(' ',end='')    ##输出空格
            a += 1
        while col <= row:    ###*的输出条件
            print('*',end='')
            col += 1
        print('')         ###行每循环一次使下一次的循环输出换行显示
        row += 1
    

    解决方法4:while循环

    i = 1
    while i <= 5:
        j = 1
        while j <= i:
            print('*',end='')
            #print('*')
            j = j+1
        #print()
        print('')#输出空,将每一行隔开
        #在i=1,j=1(即在每一个i输出完之后,均添加空行)时,输出完所有*之后,再输出空,隔开行。
        i = i + 1
    

    例子1发散:如果想要星星倒过来呢
    解决方法1:for循环

    # 1.控制行
    for i in range(6):
        # 2.控制*的数量
        for j in range(6):
            if i < j :
                print("*",end='')
        print(" ")
    

    解决方法2:while循环

    i = 1
    while i <= 5:
        j = 1
        while j < i:
            print(" ",end='')
            j += 1
        while j >= i and j <= 5:
            print("*",end='')
            j += 1
        print()
        i += 1
    

    解决方法3:while循环

    i = 1
    while i <= 5:
        j = 5
        while j >= i:
            print('*',end='')
            j = j-1
        print('')
        i = i+1
    

    例子2: 输出倒三角

    i = 1
    while i <= 9:
        while i <= 5:
            j = 1
            while j <= i:
                print('*',end='')
                j = j+1
            print('')
            i = i +1
        while 5 < i <= 9:
            j = 10
            while j > i:
                print('*', end='')
                j = j-1
            print('')
            i = i + 1
    

    例子2推广:用*输出一个棱形
    菱形*输出

    row = 1
    while row <= 9:
        col = 1
        star = 1
        # 先计算前五行的
        if row <= 5:
            while col <= (5 - row):
                print(" ", end="")
                col += 1
            while star <= row * 2 - 1:
                print("*", end="")
                star += 1
        # 计算的后四行的
        else:
            while col <= (row - 5):
                print(" ", end="")
                col += 1
            while star <= 19 - row * 2:
                print("*", end="")
                star += 1
        print("")
        row += 1
    

    例子3:猜数字游戏
    猜数字游戏:
    1.系统随机生成一个1~100的数字;
    2.用户共有5次机会猜;
    3.如果用户猜测数字大于系统给出的数字,打印"too big"
    4.如果用户猜测数字小于系统给出的数字,打印"too small"
    5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",并退出循环

    import random
    
    num = random.randint(1,100)
    print(num)
    
    i = 1
    while i <= 5:
        ans = int(input("请猜数:"))
        if ans > num:
            print("too big,还剩%d次机会"%(5-i))
        elif ans < num:
            print("too small,还剩%d次机会"%(5-i))
        else:
            print("恭喜中奖!!!")
            break
        i += 1
    

    while和for的进阶案例 while for嵌套使用
    例子1、 求 1+2!+3!+…+20! 的和。
    解决方法1:while循环嵌套

    i = 1
    sum = 0
    while i <= 20:
        sum1 = 1
        j = 1
        while j <= i:
            sum1 = sum1*j
            j = j+1
        i = i+1
        sum = sum+sum1
        #print(sum) 这里会把每一步的输出都给输出出来
    print(sum)
    

    解决方法2 :for循环嵌套

    for x in range(1, 21):
        sum1 = 1
        for j in range(1, x + 1):
            sum1 = sum1 * j
            j = j + 1
        sum = sum + sum1
    # i = i+1
    print(sum)
    

    例子2:本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?

    #while循环
    i = 1
    t = 10000
    x = 0.003
    while i <= 5:
        t = t*x+t
        i = i+1
    print(t)
    #for循环
    t = 10000
    x = 0.003
    for i in range(1,6):
        t = t+t*x#注意此时for循环只用来判定次数用
    print(t)
    #递归函数
    

    例子3、题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    解决方法1:for循环

    for s in range(100,1000):
        s = str(s)
        s1 = int(s[0])
        s2 = int(s[1])
        s3 = int(s[2])
        x = str(s1**3+s2**3+s3**3)
        if x == s:
            print(x)
    
    for s in range(100,1000):
        if ((s//100)**3)+(((s%100)//10)**3)+((s%10)**3) == s:
            print(s)
    

    解决方法2:while循环

    s = 100
    while s < 1000:
        if ((s//100)**3)+(((s%100)//10)**3)+((s%10)**3) == s:
            print(s)
        s = s+1
    

    例子4:设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字
    解决方法1:while循环

    m = 1
    while m <= 100:
        if m%7 != 0:
            if m//10 != 7:
                if m%10 != 7:
                    print(m)
        m = m + 1
    

    解决方法2 :while循环

     i = 0
     while i <= 99:
         i += 1
         if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
             continue#while中continue语句的运用
         else:
             print(i)
    

    解决方法3:for循环

    for i in range(1, 101):
        if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
            continue
        print(i)
    

    例子5:使用while、if来完成剪刀石头布程序,要求,当玩家第3次获胜时才退出游戏,否则继续玩。
    解决方法1:while循环(用while来限定循环次数)

    import random
    i = 1#用while循环记录赢的次数
    while i <= 3:
        player = int(input('请出招(石头0,剪刀1,布2):'))
        computer = random.randint(0, 2)
        if (player == 2 and computer == 0) or (player == 0 and computer == 1) or (player == 1 or computer == 2):
            i = i+1
            print('你赢啦,再来!')
            #print(i)#可以打印出i来观察每次赢之后i值有没有增加
        #i = i+1#如果将此式子写在此处,代表着判定条件的结束,无法进行下面的判定,注意体会
        elif player == computer:
            print('平局啦,再来!')
        else:
            print('你输啦,再来!')
    print('你赢了三次啦,结束!')
    

    解决方法2:while循环(用if语句来判定赢的次数是否到达3次)

    win_times = 0
    while True:
        player = int(input("请输入:剪刀(0) 石头(1) 布(2)"))
        computer = random.randint(0, 2)
        if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
            win_times += 1
            if win_times == 3:
                print("你赢了三次了")
                break
            else:
                print("你赢了这局游戏")
        elif player == computer:
            print("平局,再来一次")
        else:
            print("你输了,不要走,决战到天亮")
    

    例子6:7、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。
    你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。
    经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,
    游戏结束后公布结果。
    说明:
    1~2次猜中,打印你太TM有才了!
    3~6次猜中,打印这么快就猜出来了,很聪明嘛!
    大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!
    猜测次数最多20次。
    解决方法:while循环(自己写的)

    import random
    i = 0
    computer = random.randint(0, 99)
    while True:
        player = int(input('请输入你猜的数字:'))
        #computer = random.randint(0, 99)#随机生成一定要在循环外,否则每次都会随机生成
        if i <= 20:
            if player == computer:
    
                if i <= 2:
                    print('你真厉害')
                    break
                elif 3 <= i <= 6:
                    print('你真聪明')
                    break
                elif 7 <= i <= 20:
                    print('再努努力吧')
                    break
            elif player > computer:
                i = i + 1
                print('太大,再猜')
            else:
                i = i + 1
                print('太小,再猜')
        else:
            print('最多只能猜20次哦')
            break
    #else:
    print('你一共猜了%d次'%i,end='')
    print(',正确数字是%s'%(computer))
    

    解决方法2:while循环

    import random
    
    num = random.randint(0, 99)
    print(num)
    times = 0
    
    while times <= 20:
        ges = int(input("请输入你猜的数字: "))
        if ges > num:
            print("你猜的数太大了")
            times += 1
            if times == 20:
                print("你都猜了20次了,还没猜中")
                break
            continue
        elif ges < num:
            print("你猜的数字太小了")
            times += 1
            if times == 20:
                print("你都猜了20次了,还没猜中")
                break
            continue
        else:
            if 1 <= times <= 2:
                print("有才")
            elif 3 <= times <= 6:
                print("还可以")
            else:
                print("需要努力")
    
    print(num)
    
    
    展开全文
  • sql中的while循环 The SQL While loop is used to repeatedly execute a certain piece of SQL script. SQL While循环用于重复执行某段SQL脚本。 This article covers some of the basic functionalities of...

    sql中的while循环

    The SQL While loop is used to repeatedly execute a certain piece of SQL script.

    SQL While循环用于重复执行某段SQL脚本。

    This article covers some of the basic functionalities of the SQL While loop in Microsoft SQL Server, with the help of examples.

    本文通过示例介绍了Microsoft SQL Server中SQL While循环的一些基本功能。

    SQL While循环语法 (SQL While loop syntax)

    The syntax of the SQL While loop is as follows:

    SQL While循环的语法如下:

    WHILE condition
    BEGIN
       //SQL Statements
    END;
    

    The while loop in SQL begins with the WHILE keyword followed by the condition which returns a Boolean value i.e. True or False.

    SQL中的while循环以WHILE关键字开头,后跟返回布尔值(即True或False)的条件。

    The body of the while loop keeps executing unless the condition returns false. The body of a while loop in SQL starts with a BEGIN block and ends with an END block.

    除非条件返回false,否则while循环的主体将继续执行。 SQL中while循环的主体以BEGIN块开始,以END块结束。

    一个简单的示例:使用SQL While循环打印数字 (A simple example: Printing numbers with SQL While loop)

    Let’s start with a very simple example where we use a SQL While loop to print the first five positive integer values:

    让我们从一个非常简单的示例开始,在该示例中,我们使用SQL While循环打印前五个正整数值:

    DECLARE @count INT;
    SET @count = 1;
        
    WHILE @count<= 5
    BEGIN
       PRINT @count
       SET @count = @count + 1;
    END;
    

    In the script above, we first declare an integer type variable @count and set its value to 5.

    在上面的脚本中,我们首先声明一个整数类型变量@count并将其值设置为5。

    Next, we execute a While loop which checks if the value of the @count variable is less than or equals to 5. If the @count variable has a value less than or equals to 5, the body of the loop executes, and the current value of the @count variable is printed on the console.

    接下来,我们执行一个While循环,该循环检查@count变量的值是否小于或等于5。如果@count变量的值小于或等于5,则执行循环主体,并执行当前操作。 @count变量的值将打印在控制台上。

    In the next line, the value of the @count variable is incremented by 1. The While loop keeps executing until the value of the @count variable becomes greater than 5. Here is the output:

    在下一行,@count变量的值增加1。While循环一直执行,直到@count变量的值大于5。这是输出:

    Result of variable count calculation

    使用SQL While循环插入记录 (Inserting records with SQL While loop)

    Let’s now see how the SQL While loop is used to insert dummy records in a database table.

    现在,让我们看看如何使用SQL While循环在数据库表中插入伪记录。

    For this we need a simple database “CarShop”:

    为此,我们需要一个简单的数据库“ CarShop”:

    CREATE DATABASE CarShop
    

    We will create one table i.e. Cars within the CarShop database. The Cars table will have three columns Id, Name and Price. Execute the following script:

    我们将在CarShop数据库中创建一个表,即Cars。 汽车表将具有三列ID,名称和价格。 执行以下脚本:

    USE CarShop
    CREATE TABLE Cars
    (
    Id INT PRIMARY KEY IDENTITY(1,1),
    Name VARCHAR (50) NOT NULL,
    Price INT
    )
    

    Let’s now use the While loop in SQL to insert 10 records in the Cars table. Execute the following script:

    现在,让我们使用SQL中的While循环在Cars表中插入10条记录。 执行以下脚本:

    DECLARE @count INT;
    SET @count = 1;
        
    WHILE @count<= 10
    BEGIN
       INSERT INTO Cars VALUES('Car-'+CAST(@count as varchar), @count*100)
       SET @count = @count + 1;
    END;
    

    In the script above, we again declare a variable @count and initialize it with 1. Next, a while loop is executed until the value of the @count variable becomes greater than 10, which means that the while loop executes 10 times.

    在上面的脚本中,我们再次声明变量@count并用1对其进行初始化。接下来,执行while循环,直到@count变量的值大于10,这意味着while循环执行10次。

    In the body of the while loop, the INSERT query is being used to insert one record into the Cars table. For the Name column, the value of the @count variable is appended with the string Car-. For the Price column of the Cars table, the value of the @count variable is multiplied by 100.

    在while循环的主体中,使用INSERT查询将一条记录插入Cars表中。 对于“名称”列,@ count变量的值后面附加字符串Car- 。 对于Cars表的Price列,@ count变量的值乘以100。

    Now if you select all the records from the Cars table with the “SELECT * FROM Cars” query, you should see the following output:

    现在,如果使用“ SELECT * FROM Cars”查询从Cars表中选择所有记录,则应该看到以下输出:

    Screenshot of result of using While loop in SQL

    使用SQL While循环实现分页 (Implementing paging with SQL While loop)

    The while loop can also be used to implement paging. Paging refers to displaying a subset of records from a data table at any particular time.

    while循环还可用于实现分页。 分页是指在任何特定时间显示数据表中记录的子集。

    In the following script, the while loop will be used to select two records from the Cars table at a time. The selected records are then displayed in the console output:

    在以下脚本中,while循环将用于一次从Cars表中选择两个记录。 然后,所选记录将显示在控制台输出中:

    DECLARE @count INT
    DECLARE @limit INT;
    SET @count = 0
    SET @limit = 2;
        
    WHILE @count< 10
    BEGIN
       SELECT * FROM Cars 
       ORDER BY Id
       OFFSET @count ROWS
       FETCH NEXT @limit ROWS ONLY
       SET @count = @count + 2;
    END;
    

    In the script above, we initialize two variables i.e. @count and @limit. The initial values for the @count and @limit variables are 0 and 2, respectively. The while loop executes while the value of the @count variable remains less than 10.

    在上面的脚本中,我们初始化了两个变量,即@count和@limit。 @count和@limit变量的初始值分别为0和2。 当@count变量的值保持小于10时,将执行while循环。

    Inside the while loop, the OFFSET clause is used to skip the first N rows of the Cars table. The FETCH NEXT clause fetches the next N records.

    在while循环内,OFFSET子句用于跳过Cars表的前N行。 FETCH NEXT子句获取接下来的N条记录。

    In the first iteration, the value of OFFSET will be 0 since @count is 0, the first two records will be displayed. In the second iteration, since the @count variable will have the value 2, the first two records will be skipped and the records 3 and 4 will be retrieved.

    在第一次迭代中,由于@count为0,因此OFFSET的值为0,将显示前两个记录。 在第二次迭代中,由于@count变量的值为2,因此将跳过前两个记录,并检索记录3和4。

    In this way, all the records from the Cars table will be retrieved in sets of two. The output is as follows:

    这样,Cars表中的所有记录将以两个为一组进行检索。 输出如下:

    Screenshot of result of using while loops to create pagination in SQL

    In the output, you can see all the records from the Cars table, printed in sets of two on the console.

    在输出中,您可以查看Cars表中的所有记录,这些记录以两个一组的形式打印在控制台上。

    CONTINUE和BREAK语句 (The CONTINUE and BREAK statements)

    The CONTINUE statement is used to shift the control back to the start of a while loop in SQL. The BREAK statement is used to terminate the loop.

    CONTINUE语句用于将控件移回SQL中的while循环的开始。 BREAK语句用于终止循环。

    The following script shows how to use the CONTINUE statement inside a while loop to print the first five positive even integers:

    以下脚本显示了如何在while循环中使用CONTINUE语句打印前五个正偶数整数:

    DECLARE @count INT;
    DECLARE @mod INT;
    SET @count = 1;
        
    WHILE @count<= 10
    BEGIN
       set @mod =  @count % 2 
       IF @mod = 1
        BEGIN
        SET @count = @count + 1;
           CONTINUE
        END
       PRINT @count
       SET @count = @count + 1;
    END;
    

    In the script above, the while loop executes until the value of the @count variable remains less than or equal to 10. The initial value of the @count variable is 1.

    在上面的脚本中,执行while循环,直到@count变量的值保持小于或等于10。@count变量的初始值为1。

    In the body of the loop, the value of the remainder of the @count divided by 2 is stored in the @mod variable. If the value of the @count variable is odd, the remainder will be 1, and if the remainder is 0, the CONTINUE statement is used to shift the control back to the start of the while loop and the value of the @count variable is not printed.

    在循环的主体中,@ count的余数除以2将存储在@mod变量中。 如果@count变量的值为奇数,则余数为1,如果余数为0,则使用CONTINUE语句将控件移回到while循环的开始,并且@count变量的值为不打印。

    Otherwise, the value of the @count variable is printed on the console. Here is the output of the above script:

    否则,@ count变量的值将打印在控制台上。 这是上面脚本的输出:

    Result of using count and break statements.

    The following example demonstrates the use of a BREAK statement. The while loop in the following script will terminate after printing the first five integers:

    下面的示例演示BREAK语句的用法。 在打印前五个整数后,以下脚本中的while循环将终止:

    DECLARE @count INT;
    SET @count = 1;
        
    WHILE @count<= 10
    BEGIN
       IF @count > 5
        BEGIN
            BREAK
        END
       PRINT @count
       SET @count = @count + 1;
    END;
    

    结论 (Conclusion)

    If you want to repeatedly execute a particular SQL script, the SQL While loop is the way to go. The article explains how to use the SQL While loop in Microsoft SQL Server to perform a variety of tasks ranging from record insertion to pagination.

    如果要重复执行特定SQL脚本,则可以使用SQL While循环。 本文介绍了如何在Microsoft SQL Server中使用SQL While循环执行从记录插入到分页的各种任务。

    翻译自: https://www.sqlshack.com/sql-while-loop-understanding-while-loops-in-sql-server/

    sql中的while循环

    展开全文
  • sql while循环_SQL WHILE循环的简单示例

    万次阅读 2020-07-16 19:53:14
    sql while循环 SQL WHILE loop provides us with the advantage to execute the SQL statement(s) repeatedly until the specified condition result turn out to be false. SQL WHILE循环为我们提供了重复执行...

    sql while循环

    SQL WHILE loop provides us with the advantage to execute the SQL statement(s) repeatedly until the specified condition result turn out to be false.

    SQL WHILE循环为我们提供了重复执行SQL语句的优势,直到指定的条件结果为假。

    In the following sections of this article, we will use more flowcharts in order to explain the notions and examples. For this reason, firstly, we will explain what is a flowchart briefly. The flowchart is a visual geometric symbol that helps to explain algorithms visually. The flowchart is used to simply design and document the algorithms. In the flowchart, each geometric symbol specifies different meanings.

    在本文的以下各节中,我们将使用更多流程图以解释概念和示例。 因此,首先,我们将简要解释什么是流程图。 流程图是可视的几何符号,有助于直观地解释算法。 该流程图仅用于设计和记录算法。 在流程图中,每个几何符号都有不同的含义。

    The following flowchart explains the essential structure of the WHILE loop in SQL:

    以下流程图说明了SQL中WHILE循环的基本结构:

    Flow chart of the SQL WHILE loop

    As you can see, in each iteration of the loop, the defined condition is checked, and then, according to the result of the condition, the code flow is determined. If the result of the condition is true, the SQL statement will be executed. Otherwise, the code flow will exit the loop. If any SQL statement exists outside the loop, it will be executed.

    如您所见,在循环的每次迭代中,都会检查定义的条件,然后根据条件的结果确定代码流。 如果条件的结果为true,则将执行SQL语句。 否则,代码流将退出循环。 如果循环外存在任何SQL语句,它将被执行。

    SQL WHILE循环语法和示例 (SQL WHILE loop syntax and example)

    The syntax of the WHILE loop in SQL looks like as follows:

    SQL中的WHILE循环的语法如下所示:

    WHILE condition
    BEGIN
       {...statements...}
    END
    

    After these explanations, we will give a very simple example of a WHILE loop in SQL. In the example given below, the WHILE loop example will write a value of the variable ten times, and then the loop will be completed:

    经过这些解释,我们将给出一个非常简单SQL WHILE循环示例。 在下面给出的示例中,WHILE循环示例将写入该变量的值十次,然后循环将完成:

    DECLARE @Counter INT 
    SET @Counter=1
    WHILE ( @Counter <= 10)
    BEGIN
        PRINT 'The counter value is = ' + CONVERT(VARCHAR,@Counter)
        SET @Counter  = @Counter  + 1
    END
    

    Result of the WHILE loop example in SQL Server

    Now, we will handle the WHILE loop example line by line and examine it with details.

    现在,我们将逐行处理WHILE循环示例,并对其进行详细检查。

    In this part of the code, we declare a variable, and we assign an initializing value to it:

    在代码的这一部分中,我们声明一个变量,并为其分配一个初始化值:

    DECLARE @Counter INT 
    SET @Counter=1
    

    This part of the code has a specified condition that until the variable value reaches till 10, the loop continues and executes the PRINT statement. Otherwise, the while condition will not occur, and the loop will end:

    这部分代码具有指定条件,直到变量值达到10为止,循环才会继续并执行PRINT语句。 否则,while条件将不会发生,并且循环将结束:

    WHILE ( @Counter <= 10)
    

    In this last part of the code, we executed the SQL statement, and then we incremented the value of the variable:

    在代码的最后一部分,我们执行了SQL语句,然后增加了变量的值:

    BEGIN
        PRINT 'The counter value is = ' + CONVERT(VARCHAR,@Counter)
        SET @Counter  = @Counter  + 1
    END
    

    The following flowchart illustrates this WHILE loop example visually:

    以下流程图直观地说明了此WHILE循环示例:

    SQL WHILE loop example flowchart

    无限SQL WHILE循环 (Infinite SQL WHILE loop )

    In the infinite loop AKA endless loop, the condition result will never be false, so the loop never ends and can work forever. Imagine that we have a WHILE loop, and we don’t increment the value of the variable. In this scenario, the loop runs endlessly and never ends. Now, we will realize this scenario with the help of the following example. We need to take account of one thing that we should not forget to cancel the execution of the query manually:

    在无限循环(又称为无穷循环)中,条件结果永远不会为假,因此循环永远不会结束并且可以永远工作。 想象一下,我们有一个WHILE循环,并且我们不增加变量的值。 在这种情况下,循环将无限地运行,并且永远不会结束。 现在,我们将在以下示例的帮助下实现此方案。 我们需要考虑一件事,我们不应忘记手动取消查询的执行:

    DECLARE @Counter INT 
    SET @Counter=1
    WHILE ( @Counter <= 10)
    BEGIN
        PRINT 'Somebody stops me!'
      
    END
    

    Infinite SQL WHILE loop  demonstration

    In the following flowchart, it is obvious that the value of the variable never changes; therefore, the loop never ends. The reason for this issue is that the variable is always equal to 1 so the condition returns true for each iteration of the loop:

    在下面的流程图中,很明显,变量的值从不改变。 因此,循环永远不会结束。 出现此问题的原因是,变量始终等于1,因此条件对于循环的每次迭代都返回true:

    Infinite SQL WHILE loop  flowchart

    BREAK声明 (BREAK statement )

    BREAK statement is used in the SQL WHILE loop in order to exit the current iteration of the loop immediately when certain conditions occur. In the generally IF…ELSE statement is used to check whether the condition has occurred or not. Refer to the SQL IF Statement introduction and overview article for more details about the IF…ELSE statement.

    在SQL WHILE循环中使用BREAK语句,以便在发生某些情况时立即退出循环的当前迭代。 通常在IF…ELSE语句中使用该语句检查条件是否发生。 有关IF…ELSE语句的更多详细信息,请参见SQL IF语句介绍和概述文章。

    The following example shows the usage of the BREAK statement in the WHILE loop:

    以下示例显示了WHILE循环中BREAK语句的用法:

    DECLARE @Counter INT 
    SET @Counter=1
    WHILE ( @Counter <= 10)
    BEGIN
      PRINT 'The counter value is = ' + CONVERT(VARCHAR,@Counter)
      IF @Counter >=7
      BEGIN
      BREAK
      END
        SET @Counter  = @Counter  + 1
    END
    

    WHILE loop demonstration with BREAK statement

    In this example, we have checked the value of the variable, and when the value is equal or greater than 7, the code entered the IF…ELSE block and executed the BREAK statement, and so it exited the loop immediately. For this reason, the message shows the values of the variable up to 7. If the condition of the IF…ELSE statement does not meet, the loop will run until the condition result will be false. The following flowchart explains the working logic of the BREAK statement example as visually:

    在此示例中,我们检查了变量的值,当该值等于或大于7时,代码进入IF…ELSE块并执行BREAK语句,因此它立即退出循环。 因此,该消息显示变量的值最多为7。如果IF…ELSE语句的条件不满足,则循环将运行,直到条件结果为false。 下面的流程图从视觉上解释了BREAK语句示例的工作逻辑:

    Flow chart of the SQL WHILE loop with BREAK statement

    继续声明 (CONTINUE statement )

    CONTINUE statement is used in the SQL WHILE loop in order to stop the current iteration of the loop when certain conditions occur, and then it starts a new iteration from the beginning of the loop. Assume that we want to write only even numbers in a WHILE loop. In order to overcome this issue, we can use the CONTINUE statement. In the following example, we will check whether the variable value is odd or even. If the variable value is odd, the code enters the IF…ELSE statement blocks and increment the value of the variable, execute the CONTINUE statement and starts a new iteration:

    为了在某​​些情况发生时停止循环的当前迭代,在SQL WHILE循环中使用了CONTINUE语句,然后从循环的开头开始了新的迭代。 假设我们只想在WHILE循环中只写偶数。 为了克服这个问题,我们可以使用CONTINUE 声明。 在下面的示例中,我们将检查变量值是奇数还是偶数。 如果变量值是奇数,则代码进入IF…ELSE语句块并递增变量的值,然后执行CONTINUE 语句并开始新的迭代:

    DECLARE @Counter INT 
    SET @Counter=1
    WHILE ( @Counter <= 20)
    BEGIN
     
      IF @Counter % 2 =1
      BEGIN
      SET @Counter  = @Counter  + 1
      CONTINUE
      END
        PRINT 'The counter value is = ' + CONVERT(VARCHAR,@Counter)
        SET @Counter  = @Counter  + 1
    END
    

    WHILE loop demonstration with CONTINUE statement

    The following flowchart explains the working logic of the CONTINUE statement example as visually:

    以下流程图从视觉上解释了CONTINUE语句示例的工作逻辑:

    Flow chart of the SQL While loop with CONTINUE statement

    通过WHILE循环读取表记录 (Reading table records through the WHILE loop)

    In the following example, we will read table data, row by row. Firstly we will create a sample table:

    在下面的示例中,我们将逐行读取表数据。 首先,我们将创建一个示例表:

    USE tempdb
    GO
    DROP TABLE IF EXISTS SampleTable
    CREATE TABLE SampleTable
    (Id INT, CountryName NVARCHAR(100), ReadStatus TINYINT)
    GO
    INSERT INTO SampleTable ( Id, CountryName, ReadStatus)
    Values (1, 'Germany', 0),
            (2, 'France', 0),
            (3, 'Italy', 0),
        (4, 'Netherlands', 0) ,
           (5, 'Poland', 0)
     
     
     
      SELECT * FROM SampleTable
    

    SampleTable image

    In this step, we will read all data row by row with the help of the WHILE loop:

    在这一步中,我们将借助WHILE循环逐行读取所有数据:

    USE tempdb
    GO
     
    DECLARE @Counter INT , @MaxId INT, 
            @CountryName NVARCHAR(100)
    SELECT @Counter = min(Id) , @MaxId = max(Id) 
    FROM SampleTable
     
    WHILE(@Counter IS NOT NULL
          AND @Counter <= @MaxId)
    BEGIN
       SELECT @CountryName = CountryName
       FROM SampleTable WHERE Id = @Counter
        
       PRINT CONVERT(VARCHAR,@Counter) + '. country name is ' + @CountryName  
       SET @Counter  = @Counter  + 1        
    END
    

    Reading  table records with SQL WHILE loop

    In this example, we read the table rows via the WHILE loop. We can also develop more sophisticated and advanced loops based on our needs.

    在此示例中,我们通过WHILE循环读取表行。 我们还可以根据需要开发更复杂和更高级的循环。

    结论 (Conclusion)

    In this article, we learned the SQL WHILE loop with quite simple examples. We also virtualized and explained the examples with flowcharts. WHILE loop helps us to achieve iterative operations in SQL Server. At the same time, BREAK and CONTINUE statements can be used to control iteration of the WHILE loop in SQL Server.

    在本文中,我们通过非常简单的示例学习了SQL WHILE循环。 我们还通过流程图虚拟化并说明了示例。 WHILE循环可帮助我们在SQL Server中实现迭代操作。 同时,BREAK和CONTINUE语句可用于控制SQL Server中WHILE循环的迭代。

    翻译自: https://www.sqlshack.com/sql-while-loop-with-simple-examples/

    sql while循环

    展开全文
  • While循环

    千次阅读 2019-04-28 08:31:33
    While循环 (撰写时间:2019年4月23日) 下面我们使用C#语法基础中做一个While循环,下面我们来看一个例子,写入While循环的方法让他执行语句。 While循环是什么意思呢。他就不像for循环那样有次数结束语句。而While...
  • Python中用户输入与while循环

    千次阅读 2022-03-26 14:05:34
    本文的主要内容是介绍Python中用户输入与while循环,包括如何接收用户输入并进行处理,在程序满足一定的条件时让程序一直运行,通过获取用户输入并学会控制程序在用户想要结束时退出循环,即可编写出交互式程序,...
  • do while循环while循环的区别

    千次阅读 2021-08-24 23:09:48
    do while循环while循环的区别
  • 实例之while循环

    千次阅读 2021-05-21 06:12:04
    } 用do~while循环解决完全平方数问题 n+100是完全平方数且n+268是完全平方数,求 n #include #include int main() { int n,a,b; n=0; do { a=sqrt(n+100); b=sqrt(n+268); if(n+100 == a*a && n+268 == b*b) { ...
  • C语言while循环语句 do while语句 for循环语句

    万次阅读 多人点赞 2019-06-10 14:17:53
    一、循环结构的思想及意义: 知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人...
  • linux命令:while循环

    千次阅读 2021-05-17 12:14:47
    while命令简介:while循环:适用于循环次数未知的场景,要有退出条件,否则就成为死循环。1.命令格式:语法:while CONDITION; dostatement...done2.命令功能:while循环:适用于循环次数未知的场景,要有退出条件...
  • Java While循环 do-while循环用法

    千次阅读 2021-03-10 03:57:04
    它的基本用法是:while (条件表达式) {循环语句}// 继续执行后续代码while循环在每次循环开始前,先会判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳到while...
  • 4.15while循环和循环关键字

    千次阅读 2022-04-15 20:52:59
    while循环 1.while循环 语法: while 条件语句: 循环体 说明: while - 关键字;固定写法 条件语句 - 任何有结果的表达式(和if中的条件语句要求一致),比如:具体的数据、已经赋值过的变量、运算表达式(赋值运算...
  • while循环开始后,先判别条件能否满足,假如满足就执行循环体内的语句,执行终了后再回来判别条件能否满足,如此无限反复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判别后循环, ...
  • python中使用while循环的实例

    千次阅读 2020-11-23 23:56:40
    python中使用while循环的实例python中for循环用于针对集合中的每个元素的一个代码块,而while循环能实现满足条件下的不断运行。使用while循环时,由于while只要满足条件就会执行代码,故必须指定结束条件,否则会...
  • WHILE 循环 while`,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了 语法 while (条件) { 满足条件就执行 } 因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,...
  • java while循环_Java while循环

    千次阅读 2020-07-14 03:04:52
    java while循环Java while loop is used to execute a block of statements continuously till the given condition is true. Earlier we looked into java for loop. Java while循环用于连续执行语句块,直到给定...
  • Python中while循环

    千次阅读 2020-12-09 10:30:55
    一、while 简介Python 的循环有 for 和 while 两种,while 为条件控制循环,通过条件表达式控制循环结束。流程图如下:Python 中 while 语句的格式如下:while :【语句块】释:当 while 的 为 True 时运行【语句块】...
  • for循环与while循环

    千次阅读 2021-07-19 13:10:30
    for循环与while循环 一、for循环 1、for为关键字,表示循环控制 2、for有四要素:循环变量初始化、循环条件、循环操作、循环变量迭代 3、循环操作,这里可以有多条语句,也就是我们要循环执行的代码 4、如果 循环...
  • while循环和for循环与它们的区别

    千次阅读 2022-05-13 15:42:08
    一、while循环与if语句有些类似,检查布尔类型的真假,与if不同的是它会循环执行,执行一次后会重复执行,直到执行到假为止,而while Ture是在不知道结果时给的一个条件,作为大部分不知道结果的语句应用。...
  • while循环只能实现无限循环的编程

    千次阅读 2021-01-14 22:22:24
    20 )) 输出结果两行,依次为(1)____________ (2)____________ 【判断题】while循环只能实现无限循环的编程 【填空题】表达式 'abcab'.replace('a','yy') 的值为 ___________ 。 【简答题】王先生,40岁,工人。1年前患...
  • 15.Python流程控制之while循环

    千次阅读 2021-11-04 23:35:54
    文章目录1.while循环1.1while循环格式1.2实例1.死循环2.指定次数循环3.指定输入结束循环4.模拟登入功能1.3break语句1.4break实例1.模拟登入功能2.2嵌套实例2.3标志位实例2.4猜数字游戏 1.while循环 1.1while循环...
  • Python while循环

    千次阅读 2020-11-28 23:59:51
    Python while循环教程Python 的 while 循环跟 if 和 for 语句类似,都是使用 : 做为分割符,要执行的代码块都是使用相同的缩进形式。Python while循环详解语法while cond:# do something说明当 cond 条件为真时,...
  • Python While 循环语句

    千次阅读 2021-02-09 08:03:05
    Python While 循环语句Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:while判断条件:执行语句……执行语句可以是单个语句或语句块。...
  • while 循环和do...while循环的区别

    千次阅读 2021-07-31 20:44:53
    while是最基本的循环,它的结构为: while(①条件表达式) { ② //循环内容 } 只要①中的条件表达式一直成立,②中的代码就会一直执行 public class Test { public static void main(String args[]) { int...
  • python for、while循环

    千次阅读 2021-12-23 18:30:11
    while循环 while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构。 while 条件表达式: 代码块 for语句一般用于实现遍历循环。遍历指逐一...
  • 怎么跳出while循环

    千次阅读 2020-12-05 23:56:56
    展开全部while 是一个循环体,退出循环体的方法有:1、循环体条件 不成立,如:while( a>0); 当32313133353236313431303231363533e59b9ee7ad9431333431373330 a≤0 的时候,条件 a>0不成立,while 循环结束,...
  • pythonwhile循环教案

    千次阅读 2021-03-05 15:20:40
    教学目标 主要介绍程序语言的基础——控制语句,包括条件分支结构 if 语句,两种主要循环结 构 while 语句和 for 语句,并详细讲解 Python 循环结构中一些函数的用法......? 非确定次数循环指程序不确定循环体可能的...
  • Java do while循环语句用法

    千次阅读 2021-02-27 19:06:57
    循环语句whileJava do while循环语句用法do-while循环,先执行一次,然后在判断,如果条件成立,在循环执行,如果不成立,继续往下执行语法do {statement(s)} while (expression);布尔表达式在循环体的后面,所以...
  • java基础—循环语句-while循环

    千次阅读 2021-12-22 21:35:48
    while循环完整格式: 初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; } while循环执行流程: ①执行初始化语句 ②执行条件判断语句,看其结果是true还是false 如果是false,循环结束 如果...
  • r语言中的while循环In addition to the for loop we discussed earlier, R also offers another kind of loop to perform iterative programming, namely the while loop. 除了前面讨论的for循环外 ,R还提供了另一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,626,310
精华内容 650,524
关键字:

while循环