Ruby选择结构实战

文章目录

一、Ruby选择结构实战概述

  • 程序编出来是用于判断决策的,因此在编程语言中,如何使用判断也就理所当然成为其核心思想,它影响我们用这门语言编码和思维的方式。Ruby的判断语句和其他大部分面向对象或过程式语言大同小异。
  • 当你使用if或unless时,既可选用块形式(ifcondition,statements,end),也可选用单行形式(statements if condition)。也许在某些人看来,if的单行形式令人作呕,但我却觉得,它仅仅用了一行代码,就清楚地表达了思想。

二、Ruby选择结构实战案例

(一)闰年判断

1、编写程序,实现功能

  • 编写程序 - JudgeLeapYear.rb
rb 复制代码
=begin
功能:闰年判断
作者:华卫
日期:2024年3月22日
=end

print "输入一个年份:"
input = gets.chomp
year = input.to_i

if year % 4 == 0 && year % 100 !=0 || year % 400 == 0
    puts "#{year}是闰年。"
else
    puts "#{year}是平年。"
end

2、程序的解释说明

  • 这段 Ruby 程序实现了一个功能:判断输入的年份是否是闰年。

    1. 首先,通过 gets.chomp 方法获取用户输入的年份,并将其转换为整数类型,存储在变量 year 中。

    2. 然后,使用条件语句 if 进行判断。条件判断的逻辑:

      • 如果年份能被 4 整除,但不能被 100 整除,或者能被 400 整除,那么就是闰年。
      • 否则,就是平年。
    3. 最后,根据条件判断的结果,使用 puts 方法输出相应的信息,告诉用户输入的年份是闰年还是平年。

  • 值得注意的是,程序中使用了逻辑运算符 &&|| 来组合多个条件,其中 && 表示逻辑与(and),|| 表示逻辑或(or)。这样的逻辑组合确保了按照闰年的定义来正确判断年份。

3、运行程序,查看结果

  • 执行命令:ruby JudgeLeapYear.rb

(二)求解一元二次方程

1、编写程序,实现功能

  • 编写程序 - SolveQuadraticEquation.rb
rb 复制代码
=begin
功能:求解一元二次方程
作者:华卫
日期:2024年3月22日
=end

# 输入部分
print "a = "
input = gets.chomp
a = input.to_f
print "b = "
input = gets.chomp
b = input.to_f
print "c = "
input = gets.chomp
c = input.to_f

# 处理部分
delta = b**2 - 4 * a * c
if delta > 0 
	x1 = (-b + Math.sqrt(delta)) / (2 * a)
	x2 = (-b - Math.sqrt(delta)) / (2 * a)
	# 输出部分
	puts "方程有两个不等实根"
	puts "x1 = #{x1}"
	puts "x2 = #{x2}"
elsif delta == 0
    x1 = x2 = -b / (2 * a)
    # 输出部分
	puts "方程有两个相等实根"
	puts "x1 = #{x1}"
	puts "x2 = #{x2}"
else
	realPart = -b / (2 * a) # 实部
	imageryPart = Math.sqrt(-delta) / (2 * a) # 虚部
	# 输出部分
	puts "方程有两个不等复根"
	puts "x1 = #{realPart} + #{imageryPart}i"
	puts "x2 = #{realPart} - #{imageryPart}i"	
end

2、程序的解释说明

  • 这段 Ruby 程序是一个用于求解一元二次方程的简单程序,它包含了输入、处理和输出三个部分,并根据方程根的类型输出不同的结果。
(1)输入部分
  • 程序首先提示用户输入方程的系数 abc,然后通过 gets.chomp 方法获取用户输入的字符串,并使用 to_f 方法将其转换为浮点数类型。
(2)处理部分
  1. 计算判别式 delta = b**2 - 4 * a * c,用以确定方程的根的类型。
  2. 如果判别式 delta 大于 0,则方程有两个不等实根,使用求根公式计算实根 x1x2
  3. 如果判别式 delta 等于 0,则方程有两个相等实根,实根为 -b / (2 * a)
  4. 如果判别式 delta 小于 0,则方程有两个不等复根,使用复数的实部和虚部计算复根。
(3)输出部分
  • 根据方程的根的类型,分别输出不同的结果
    • 如果方程有两个不等实根,则输出两个实根 x1x2
    • 如果方程有两个相等实根,则输出相同的实根 x1x2
    • 如果方程有两个不等复根,则输出两个复根,使用形如 realPart + imageryParti 的形式表示。

3、运行程序,查看结果

  • 执行命令:ruby SolveQuadraticEquation.rb

三、Ruby选择结构实战总结

  • 通过这两个Ruby编程实例,我深入理解了Ruby的选择结构。第一个实例是判断闰年的程序,它展示了如何使用if语句进行条件判断。第二个实例是求解一元二次方程的程序,它不仅包含了条件判断,还涉及到了复数的计算。这两个实例都体现了Ruby语言简洁明了的特点,使我对Ruby有了更深入的了解和实践。
相关推荐
员宇宙1 小时前
【RabbitMQ的死信队列】
分布式·rabbitmq·ruby
<e^πi+1=0>3 天前
Ruby Raider使用教程
ruby
<e^πi+1=0>3 天前
Ruby+Selenium教程
ruby
来一杯龙舌兰5 天前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
明志-8 天前
RabbitMQ 工作模式使用案例之(发布订阅模式、路由模式、通配符模式)
分布式·rabbitmq·ruby
Agnoni10 天前
RabbitMQ消息队列的笔记
java·笔记·spring cloud·rabbitmq·ruby
飞的肖11 天前
RabbitMQ 安装、配置和使用介绍 使用前端js直接调用方式
开发语言·javascript·ruby
破局缘11 天前
apt文件问题ruby.list文件
开发语言·windows·ruby
Elastic 中国社区官方博客13 天前
如何将你的 Ruby 应用程序从 OpenSearch 迁移到 Elasticsearch
大数据·开发语言·数据库·后端·elasticsearch·搜索引擎·ruby
PGCCC15 天前
【PGCCC】 pg_query 6.0:使用 Postgres 自己的解析器解析、反解析和规范化 SQL 查询的 Ruby 库
数据库·sql·ruby