`
凌川__
  • 浏览: 83837 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

3.10 循环语句

阅读更多

一. while(当…) 循环
while 条件
 语句1; 语句2 ; 语句…
end

二. 单行 while 循环
  ( 语句1; 语句2 ; 语句… )   while   条件

三. until(直到…)  循环
我们想输出数字1到9,看程序 E3.10-1.rb,E3.10-2.rb :

a=1
 while a <10
 print a," "
 a=a+1
end
  # => 1 2 3 4 5 6 7 8 9
 
a=1
 until a >=10
 print a," "
 a=a+1
end
  # => 1 2 3 4 5 6 7 8 9
 

一边是while  a <10,一边是until  a >=10,其它代码都一样,结果也一样。从这两个小程序可以看出:  until  条件  =  while  not (条件) 

四. for…in 循环
for  变量   in   对象
    语句1; 语句2 ; 语句…
end
对象可以是数组,区间,集合…, 看程序 E3.10-3.rb:

ruby 代码 
  1. #  E3.10-3.rb   
  2. for  i  in  1..9   
  3.   print  i," "             # => 1 2 3 4 5 6 7 8 9   
  4. end  
  5.     

 

 

五.break , next  &  redo  &  retry
在循环体内,如果遇到:
break ,跳出当层循环;
next ,忽略本次循环的剩余部分,开始下一次的循环;
redo ,重新开始循环,还是从这一次开始;
retry ,重头开始这个循环体。
1).看程序 E3.10-5.rb 。

ruby 代码 
  1. puts "演示break"  
  2. c='a'   
  3.   for i in 1..4   
  4.     if i == 2 and c =='a'   
  5.       c = 'b'   
  6.       print "\n"  
  7.       break  
  8.     end  
  9.     print i,c," "  
  10.   end  
  11.  puts "\n\n"  

 #=>演示break
      1a

变量 c 在循环体之前赋值为 'a' ,程序执行了 2 次,遇到 break ,退出了本层循环,不再执行第 2 次的print i,c," "。

 

2).看程序 E3.10-5.rb 。

ruby 代码 
  1. puts "演示next"    
  2. c='a'   
  3.   for i in 1..4       
  4.     if i == 2 and c =='a'   
  5.       c = 'b'   
  6.       print "\n"  
  7.       next  
  8.     end  
  9.     print i,c," "  
  10.   end  
  11.   puts "\n\n"  

 #=>演示next
  1a
  3b 4b
变量 c 在循环体之前赋值为 'a' ,程序执行到第 2 次,c 又赋值为 'b',遇到 next ,退出了本次循环,不再执行第 2 次的print i,c," ",开始第 3 次循环,此时,c = 'b',i = 3。

 

3).看程序 E3.10-5.rb 。

ruby 代码 
  1. puts "演示redo"    
  2. c='a'   
  3.   for i in 1..4       
  4.     if i == 2 and c =='a'   
  5.       c = 'b'   
  6.       print "\n"  
  7.       redo  
  8.     end  
  9.     print i,c," "  
  10.   end  
  11.   puts "\n\n"  

 #=>演示redo
  1a
  2b 3b 4b
变量 c 在循环体之前赋值为 'a' ,程序执行到第 2 次,c 又赋值为 'b',遇到 redo ,重新开始循环,还是从这一次开始 ,此时,c = 'b',i = 2。

 

4).看程序 E3.10-5.rb 。

ruby 代码
  1. puts "演示retry"  
  2. c='a'   
  3.   for i in 1..4       
  4.     if i == 2 and c =='a'   
  5.       c = 'b'   
  6.       print "\n"  
  7.       retry  
  8.     end  
  9.     print i,c," "  
  10.   end  
  11.  puts "\n\n"  

#=>演示retry
  1a
  1b 2b 3b 4b
变量 c 在循环体之前赋值为 'a' ,程序执行到第 2 次,c 又赋值为 'b',遇到 retry ,重头开始这个循环体 ,此时,c = 'b',i = 1。


六. 求50以内的素数。

ruby 代码
  1. #  E3.10-4.rb         求50以内的素数                    
  2. for  i  in  2..50      #50以内                           
  3.   f=true             #起始假定每个数都是素数            
  4.   for  p  in  2...i    #比自身小的正整数(1和自身除外)   
  5.     if  i%p==0      #如果能整除                        
  6.       f=!f           #那么这个数不是素数                
  7.       break          #并且跳出这层循环                  
  8.     end              # if 结束                           
  9.   end                #内层循环结束                      
  10.   print  i," "  if  f    #如果这个数保持起始假定,则打印    
  11. end                  #外层循环结束     

 # => 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
E3.10-6.rb 这个小程序不是最优化的,你可以复制到自己的编辑器内,试着反复重构优化。

 

完整阅读,请看我写的 Ruby语言中文教程all in one    
 

分享到:
评论

相关推荐

    ASP的语法介绍.ppt

    **3.10 循环语句** 循环语句如For...Next、Do...Loop等,用于重复执行某段代码。 **3.11 过程** 过程是可重用的代码块,包括Sub和Function。Sub过程无返回值,Function过程可以返回一个值。 **3.12 本章小结** 本...

    GLSL_ES_Specification_3.10

    - **控制结构**:提供了常见的流程控制语句,如if-else、for循环、while循环等。 - **函数定义与调用**:支持自定义函数的定义和调用,方便实现复杂逻辑。 - **纹理采样**:提供了多种纹理采样方法,如texture2D()...

    python-3.10.11-amd64

    2. **匹配语句(Match Case)**:新增的`match`关键字提供了模式匹配功能,类似于其他语言中的switch语句,但更加灵活和强大。 3. **可选类型注解**:在3.5版本引入类型提示后,3.10进一步加强了类型注解的使用,...

    python3.8、3.9、3.10安装文件

    这个版本引入了类型注解的增强,比如PEP 572中的赋值表达式(也称为"walrus operator": `:=`),这使得在条件语句和循环中可以更方便地处理变量赋值。此外,它还优化了字典的性能,尤其是对于频繁的插入和删除操作。...

    autoit-v3-setup 3.10

    它支持变量声明、条件语句(如IF-THEN-ELSE)、循环结构(如WHILE-WEND和FOR-NEXT)以及函数定义。 2. **Windows API调用**:AutoIt能够直接调用Windows API函数,极大地扩展了其功能,可以进行窗口操作、消息发送...

    C语言程序设计程序填空题库及答案借鉴.pdf

    这种类型的题目可以帮助读者理解数组的概念和使用,熟悉循环语句和条件语句的使用。 【3.4】:計算1-3+5-7+…-99+101的值 这个题目要求读者使用C语言计算1-3+5-7+…-99+101的值。这种类型的题目可以帮助读者理解...

    《Web程序设计》第2版

    所有特效及书本网页演示 第1章 Web编程基础知识 8_例1.1 一个最简单的网页 ...67_例3.11 对象数组,用循环语句将数组项的值赋予各文本框 69_例3.12 求阶乘函数返回n!;并定义输入、计算、输出过程

    PyPI 官网下载 | traxtor-3.10-py3-none-any.whl

    同时,熟悉Python的数据结构(如列表、字典)和控制流(if语句、for循环)也是必不可少的。 在开发过程中,调试和测试是关键步骤。Python提供了丰富的调试工具,如pdb模块,以及各种第三方库,如pytest,用于编写...

    Python入门教程:超详细1小时学会Python.docx

    Python 提供了多种条件和循环语句,包括 if 语句、while 语句和 for 语句等,可以根据需要选择合适的语句来控制程序的流程。 7. 函数定义 Python 允许用户定义自己的函数,可以将一组语句封装在一起,以便重复使用...

    python-3.10.2最新中文版官方文档

    例如,`match` 语句用于模式匹配,类似于其他编程语言中的 switch 语句,但更灵活且支持复杂的数据结构,使得条件判断更加清晰。 在性能方面,Python 3.10 带来了更快的字典查找速度,这得益于新的哈希表实现。此外...

    C语言程序填空题.pdf

    解决这个问题的关键在于使用循环语句和条件语句来查找最小元素。 【3.4】数学计算问题 在这个问题中,我们需要计算一系列数学表达式的值。这个问题考察了读者的数学基础知识和编程能力。解决这个问题的关键在于...

    这是自动化测试学习过程中涉及到的python代码 项目环境:python3.10+pycharm

    首先,我们需要了解Python的基础知识,包括变量、数据类型(如字符串、列表、元组、字典)、流程控制(if语句、for循环、while循环)以及函数的定义和调用。这些基础知识是编写任何Python代码的基础。 在自动化测试...

    TINY+文法规则

    TINY+是一种扩展自TINY的语言,增加了诸如声明、条件语句、循环语句、字符串类型等功能。以下内容将涵盖TINY+的词汇约定、语法结构(使用扩展巴科斯范式(EBNF)表示)、主要语义以及示例程序。 #### 二、TINY+ 的...

    精通JavaScript

    • 4.9.htm do-while循环语句 • 4.10.htm for循环语句 • 4.11.htm for循环语句之二 • 4.12.htm continue语句 第5章(\第5章) • 5.1.htm 函数定义 • 5.2....

    python-3.10.0-docs-pdf-a4.rar

    - 控制流:包括条件语句(if-else)、循环(for、while)、异常处理(try-except)和函数定义。 - 模块与包:解释如何组织代码,导入和使用其他模块,以及创建自定义模块和包。 - 类与对象:涵盖面向对象编程的...

    21天学通Java-由浅入深

    while循环语句举例 74 4.5 for循环语句 75 4.5.1 for循环语句的语法 75 4.5.2 用for循环来实现其他循环语句 76 4.5.3 for循环语句的举例 77 4.6 如何中断和继续语句的执行 78 4.6.1 break:中断语句执行 78 4.6.2 ...

    ocaml-3.10.2

    - **命令式编程**:OCaml 也支持命令式的控制结构,如循环和条件语句,允许开发者灵活地处理状态和副作用。 - **面向对象编程**:OCaml 的面向对象模型是基于模块和接口的,提供了类、继承和多态性。 - **模式...

    简单的手持计算器代码

    - 避免使用 `goto` 语句,可以通过循环和其他控制结构替代。 - 对程序进行模块化设计,将主要逻辑分解为更小的函数,提高代码的可读性和可维护性。 综上所述,这个简单的手持计算器程序通过定义一个计算器类实现...

Global site tag (gtag.js) - Google Analytics