◇ Rubyとは
RubyはWEBアプリケーションの「システム」をつくるためのプログラム言語です。
似たような言語として、PHPやPythonといったものがあります。
◇ Hello World
# 语法
puts "输出文字"
# 实例
puts "Hello World"
◇ 命令
putsは「命令」の一つ、意味は「コンソールにputsのあとの値を出力せよ」
putsの後には「半角スペース」をあける必要があります。
◇ コメントの書き方
行の先頭に#を書くと、その行がコメントになります。
◇ 文字列
文字列はクォーテーション('もしくは")で囲みます。
◇ 文字列の連結
文字列同士に「+」記号を用いると、文字列同士を連結することができます。
# 语法
puts "AA" + "BB"
⇒输出 AABB
# 用例
puts "小猫" + "小狗"
⇒输出 小猫小狗
◇ 数値
数値はクォーテーションで囲みません。
数値と記号の間も半角スペースをあける必要があります。
◇ 数値の計算
符号 * 读作アスタリスク,9%2输出的是9除以2的余数
◇ 文字列と数値の違い
# 数值
puts 5 + 2
⇒输出 7
# 文字列
puts "5 + 2"
⇒输出 5 + 2
puts "5" + "2"
⇒输出 52
変数
# 变数的概念
变数是一个箱子,变数名是贴在箱子上的标签,值是箱子里装的东西
# 定义变数的语法
変数名 = 値
※ 此处等号的意思是【代入】
# 用例
name = "John"
# 变数的用法
puts name
注意:变数不需要引号,否则会被视为文字列
◇ 変数を使える場所
変数を使うのは、必ず変数を定義した後でなければできません。
◇ 文字列の入った変数
変数を呼び出すと代入した値に「置き換わる」ので、文字列が入った変数は文字列と全く同じように扱うことができます。
例如:
message = "你好"
puts message + "午安"
⇒输出 你好午安
name = "小猫"
puts message + name
⇒输出 你好小猫
同様に、数値が入った変数なら、数値と同じように扱うことができます。
◇ なぜ変数を使うのか
- 同じ要素を繰り返し使える
- 変更に対応しやすい
- 何の要素かわかりやすい
# 不使用变数时
puts "A喜欢Ruby"
puts "B喜欢Ruby"
puts "C喜欢Ruby"
⇒ 要将Ruby换成Python时,就需要修改3处
# 使用变数时
program = Ruby
puts "A喜欢" + program
puts "B喜欢" + program
puts "C喜欢" + program
⇒ 要将Ruby换成Python时,只需修改1处
◇ 命名规则
値にふさわしい変数名をつけましょう。
変数名は自由に決めることができますが、Rubyではいくつか命名のルールがあります。
特に、2語以上を組み合わせた変数名をつけるときは、アンダーバーを用いるということは覚えておきましょう。
◇ 変数の更新
- 変数は、一度代入した値を変更することもできます。
一度値を代入した変数に、その後再び値を代入すると、後に代入した値で変数の中身が上書きされます。
number = 10
puts number
⇒ 输出10
number = 20
puts number
⇒ 输出20
- 自分自身に代入する
number = 10
puts number
⇒ 输出10
number = number + 5
puts number
⇒ 输出15
省略した書き方
基本形 | 省略形 |
---|---|
x = x + 10 | x += 10 |
x = x - 10 | x -= 10 |
x = x * 10 | x *= 10 |
x = x / 10 | x /= 10 |
x = x % 10 | x %= 10 |
◇ 変数展開
変数の値を文字列の中に含める方法があります。
これを「変数展開」と呼びます。
# 语法
#{变数名}
# 用例
name = "John"
puts "你好#{name}"
⇒ 输出 你好John
変数展開をする際は注意点があります。
実はダブルクォーテーションを使った文字列の場合しか変数展開はされません。
シングルクォーテーションの場合は、変数展開が行われず、そのまま文字列として出力されてしまうので注意しましょう。
puts '你好#{name}'
⇒ 输出 你好#{name}
変数展開のメリット
数値と文字列を足し算で連結することはできません。
しかし変数展開を用いると、数値の入った変数も問題なく文字列と連結できます。
age = 19
puts age + "岁"
⇒ 输出error
puts "#{age}岁"
⇒ 输出 19岁
if文:条件分岐
# 语法
if 条件式
处理
end
# 用例
score = 94
if score > 80
puts "做得很好"
end
当条件不成立时,则不执行if中的处理。
◇ 真偽値・比較演算子
- 条件式の出力
score = 94
puts score > 80
⇒ 输出 true
符号 | 含义 |
---|---|
a == b | a与b相等时为true |
a != b | a与b不等时为true |
◇ else:条件が成り立たない場合の処理
# 语法
if 条件式
处理(当条件式为true的时候执行)
else
处理(当条件式为false的时候执行)
end
# 用例
score = 100
if score == 100
puts "满分"
else
puts "不是满分"
end
◇ インデント
インデントとは日本語で「字下げ」を意味します。
tabキーを1回押すと、半角スペース2つ分インデントできます。
◇ elsif:条件を追加する
# 语法
if 条件1
处理(条件1为true时执行)
elsif 条件2
处理(条件1为False,且条件2为true时执行)
else
处理(条件1&2皆为false时执行)
end
# 用例
score = 77
if score > 80
puts "优秀"
elsif score > 60
puts "合格"
else
pus "不合格"
end
注意点:elsifに実行されるのは最初に合致した条件の処理のみです。そのため条件の順番を間違えると、期待した分岐がなされないことがあります。
◇ 条件を組み合わせよう
符号 | 含义 |
---|---|
&& | かつ |
II | または |
# 用例
score = 68
if score <= 80 && score > 60
puts "及格"
end
练习
総合課題にチャレンジしましょう。
好きな西暦を変数に代入すると、その年に夏季オリンピックが開催されたかどうかを出力するプログラムを作ります。
# 好きな年を西暦(例:2000)で代入してください
year = 3927
# 以下の条件分岐に、新しい条件を追加してください
if year < 1896
puts "#{year}年にオリンピックはまだありません"
elsif year == 1916 || year == 1940 || year == 1944
puts "#{year}年にオリンピックは開催されませんでした"
elsif year % 4 == 0
puts "#{year}年は夏季オリンピックが開催されました"
else
puts "#{year}年は夏季オリンピックイヤーではありません"
end