Ruby学習

ルクアのスターバックスにて高校の友だちと作業回。
自分はRuby学習

自分も友人も予定が空いていたため、昼過ぎから集まったが、スタバは長居には適さんとつくづく実感した。短期集中に限る。

requiere メソッド

外部ファイルを読み出すのだが、たのしいRuby第6版にかかれている例文通りに

 requiere"ファイル名"

とするとエラー

なんでやと思ったら相対パスで読み込むため同じディレクトリに入っているフォルダでも(./)で一度カレントディレクトリに戻るようにしなければならない。

参考:https://www.sejuku.net/blog/16111

「たのしいRuby第6版」しっかりしてくれよ(T_T)

同じディレクトリに読み込みたいファイルが入っている場合、正しくは

requiere"./ファイル名"

eachメソッド

配列Aを定義した後

A.each do |x|
	puts x
end

とすると配列Aの中身を順番にxに代入し、順番に実行することができる。
この場合は順に出力する。

C++のときはfor文で配列の中身を順番に実行していたので Rubyではこのメソッドが存在するおかげで配列の中身の実行がかなり楽になると感じた。

条件分岐

if文はC++と同じ感じ

case文

case 比較対象のオブジェクト
	when 値1 then
	文1
	when 値2 then
	文2
	・・・
end

で比較対象のオブジェクトと値を比較して一致する場合文を実行する。
値は複数指定することも可能

繰り返し

C++より繰り返しの方法が多い印象

times メソッド

繰り返したい回数.times do
	処理
end

で指定した回数処理を繰り返す。

C++の場合

for(i=0;i>=5;i++){
	処理
}

みたいな感じで回数を指定しなければならないので一発で繰り返し回数を指定できるのは便利。

for文

C++とfor文の概念がちょいと違うので面倒

for 変数 in 開始時の値..終了時の値
	処理
end
x=[p,q,r]
for y in x
	処理
end

でeachメソッドのように使うことも可能

C++が継続条件を指定するのに対し、Rubyでは開始時と終了時の値を指定する

while文の概念はC++に似ている

loopメソッド

回数制限がなくなんらかの制御をしない限りその名の通り無限ループする

loop do
	処理
end

繰り返し制御

  • break:繰り返しから抜ける
  • next:次の処理にスキップ
  • redo:処理をやり直す

以上の命令をif文等と組み合わせて制御する

メソッド定義

def メソッド名(引数)
	処理
end

で定義

メソッド名(引数)

で呼び出し

コメント

タイトルとURLをコピーしました