Newer
Older
Ruby / for.rb
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
#一つ目のプログラム 
sports = ["野球","バレーボール","サッカー"]  
for kibun in sports #kibun変数にsports配列の要素を順番に代入される
    printf("今日は%sしたい気分だ。\n",kibun) #この部分が繰り返される
end

#for文とは??:配列や範囲などの複数の値を、順番に変数へ代入する処理
#一つ目のプログラムの詳しい解説:sportsという配列に格納される配列の要素を順番にkibunという変数に代入して処理が繰り返されて、野球、バレーボール、サッカーの順番で出力されます。
#今回はsportsという配列を事前に作ってfor文のオブジェクト指定の部分に要素として入れていますが、["野球","バレーボール","サッカー"] を直接入力しても動きます。


#改善編~このプログラムを動かすときは一つ目のプログラムの行の初めにシャープをつけてコメント文にして、改善版プログラムの一行目からシャープを消そう~
#sports = ["野球","バレーボール","サッカー","ボート","ホッケー","ラグビー","卓球"] 
#i=0          #for文の中のprintf文で添字を作るためのもの
#puts "スポーツ図鑑"
#for zukan in sports     #x変数にsports配列の要素を順番に代入される
#  printf("%d: %s\n", i+=1, zukan) #%dにはiに1づつ追加されていき、%sにはx変数に代入されているsports配列の要素がが入る
#end

#改善版プログラムの詳しい解説:i=0を活用してprintfの中にi+=1を入れることでスポーツ名を出す時の添字にしています。また、sportsという配列に格納される配列の要素を順番にzukanという変数に繰り返し代入されるため、野球、バレーボール、サッカーボート、ホッケー、ラグビー、卓球の順番で出力されます。