当一个while循环位于另一个while循环内部时,称为while循环嵌套。这意味着有两个while循环,第一个作为外部循环,而后面一个作为内部循环。执行将以首先触发外部“ while”循环的方式进行,然后如果指定的布尔条件匹配,则指针将传递到内部“ while”循环。同样,如果布尔条件成立,则将执行内部while循环主体,直到指定条件不为假为止。一旦内部循环完成其执行,该指针将被传递回外部for循环以成功执行。
在Ruby中,while循环的嵌套可以借助以下语法来完成:
while (condition ) while (condition ) # 要执行的代码 end #expressions end
范例1:
我们可以使用嵌套的while循环打印各种模式。让我们看看如何打印以下图案。
1 22 333 4444 55555
码:
=begin Ruby program to print a pattern using nested while loop =end num=0 while (num!=6) j=0 while(j!=num) print num j+=1 end puts "" num+=1 end
范例2:
=begin Ruby program to check number of palindrome numbers present between two limits using nested while loop =end puts "Enter upper limit:-" ul=gets.chomp.to_i puts "Enter lower limit:-" ll=gets.chomp.to_i while(ul!=ll) num=ul temp=ul pal=0 while(num!=0) rem=num%10 num=num/10 pal=pal*10+rem end if temp==pal puts "#{temp} is palindrome" end ul=ul-1 end
输出结果
Enter upper limit:- 200 Enter lower limit:- 10 191 is palindrome 181 is palindrome 171 is palindrome 161 is palindrome 151 is palindrome 141 is palindrome 131 is palindrome 121 is palindrome 111 is palindrome 101 is palindrome 99 is palindrome 88 is palindrome 77 is palindrome 66 is palindrome 55 is palindrome 44 is palindrome 33 is palindrome 22 is palindrome 11 is palindrome
您可以在上述程序中观察到,首先通过指定条件检查外部while循环,即while循环将运行直到上限不等于下限。
上限通过使用内部while循环执行回文检查的次数来传递。内部while循环具有执行检查所需的所有那些语句。一次,完成内部评估。指针返回外循环,上限减小1。