Ruby 筆記

Ruby基礎

  • [Ruby 的註解方式][1]
  • #單行註解
  • Hello.rb

變數與輸入輸出

 1puts 'Hello World' #output Hello World
 2puts 20+2 #output 22
 3puts 20-2 #output 18
 4puts 20*2 #output 40
 5puts 20/2 #output 10
 6name='John' #no output
 7puts name #john
 8name=gets.chomp #get user input
 9puts 'Hello'+name #output Hello John
10print 'Hello world' #不會換行 output Hello World
  • puts 印出資料 (換行)
  • print 印出資料(不換行)
  • gets.chomp 取得輸入
  • +將兩個文字串接
  • boolean: true 和 false

Tips:
\= 指派相等
\== 比較是否相等
!= 比較是否不相等

irb

  • irb 是一個ruby 的命令介面,可以即時執行ruby 結果
  • control+l 清空
  • exit 離開

if …else…end

 1#number =8
 2number = Random.rand(9)
 3#隨機產生0-9 的數字
 4print("請猜一個1~15之間的數字")
 5guess=gets.chomp.to_i
 6#to_i 轉換為數字
 7
 8if guess == number # '8' != 8
 9  puts '猜對了,答案是'+number.to_s
10  #to_s 轉換為字串
11else
12  puts '猜錯了!'
13end

while…end

 1#上一個的進階版
 2number = Random.rand(14)+1
 3#while guess==number #迴圈
 4while true
 5  print("請猜一個1~15之間的數字")
 6  guess=gets.chomp.to_i
 7  if guess == number # '8' != 8
 8    puts '猜對了,答案是'+number.to_s
 9    break;
10  else
11    if guess > number
12      puts '猜錯了! 太大了'
13    else
14      puts '猜錯了! 太小了'
15    end
16  end
17end

Array

 1scores= [80,100,90,99] #定義一個名為scores 的array
 2scores.each do |score|
 3puts score
 4end
 5#另外一種寫法
 6scores.each {|score|puts score}
 7
 8print(scores[0]) ## 印出第一個ruby array 值
 9print(scores.pop(2)) ## 教最後兩個叫出來 [90,99]
10print(scores.pop) # 將最後一個叫出來 [99]
11print(scores.sort) # 排序 [80,90,99,100]

成績管理程式-綜合應用

 1# 1=>檢視成績 2 新增成績 3 刪除成績 4 結束成績
 2scores=[90,88,85]
 3puts '輸入 1 檢視成績、2 新增成績、3 刪除成績、4 結束程式'
 4while true
 5  print '>'
 6  command = gets.chomp.to_i
 7
 8  if command == 1
 9    scores.each do |score|
10      puts score
11    end
12  end
13  if command == 2
14    print '請輸入要新增的成績:'
15    scores.push gets.chomp.to_i
16  end
17  if command == 3
18    print '請輸入要刪除的成績位置:'
19    scores.delete_at (gets.chomp.to_i-1)
20  end
21  if command == 4
22    puts '程式結束!'
23    break
24  end
25end

Hash

 1record={'name'=>'john','score'=>90}
 2records={:name=>'john',:score =>90}
 3
 4puts record[name] #john
 5puts record[score] #90
 6
 7puts records[:name] #john
 8puts records[:score] #90
 9
10record.each do |key,value|
11  puts key
12  puts value
13end

Method

 1def greet
 2  puts 'hello'
 3end
 4
 5greet #=> hello
 6#def method_name....end
 7def greet(name)
 8  puts 'hello,'+name
 9end
10
11greet 'John' #=> hello,John
12
13require_relative 'method' #引入該資料夾底下的method.rb

原來可以這麼寫(8): SAM 真的好好玩~
網站可靠性工程工作手冊導讀會一遊