読者です 読者をやめる 読者になる 読者になる

復習&練習問題2 >視覚系のメソッド

何度実行しても warning が出力されたのは、ドットの前のスペースにありました。お教えいただきありがとうございます!

. ドット や () 括弧はくっつけて書くと出なくなると思いますよ。
name.center(width) #=> OK
name .center (width) #=> 良くない書き方
なんで良くないかというとメソッド呼び出しの引数の優先順位で空白が続くと云々(以下略)

ということで、昨日のゲーテの一節をリトライします。

line_width = 50
puts '星のように'.center(line_width)
puts '急がず'.center(line_width)
puts '    しかし休まず、'.center(line_width)
puts '人はみな'.center(line_width)
puts '        おのが負いめのまわりをめぐれ'.center(line_width)
puts 'ゲーテ'.center(line_width)

うまくいきました。加えて アポストロフィ後にスペースを確保することによってバランスを調整することができます。

moomin:ProgrammingRuby tomomi$ ruby method2.rb
                 星のように                  
                    急がず                     
                しかし休まず、             
                   人はみな                   
        おのが負いめのまわりをめぐれ
                    ゲーテ         

練習問題

center, ljust, rjust を使って次のような目次を表示するプログラムを書いてください。
        目次

1章: プログラミングを始める前の準備   1
2章: 数と計算              13
3章: 文字列               17

トライ1
line_width = 60
puts '目次'.center(line_width)
puts ''
puts '1章: プログラミングを始める前の準備'.ljust(line_width/2) + '  1'.rjust(line_width/2)
puts '2章: 数と計算'.ljust(line_width)+ ' 13'.rjust(line_width/2)
puts '3章: 文字列'.ljust(line_width)+ ' 17'.rjust(line_width/2)

ぐへあ。ダメ。行の幅(line_width)が広いので次はもうちと短めでいく

moomin:ProgrammingRuby tomomi$ ruby method2.rb
                           目次                           

1章: プログラミングを始める前の準備                             1
2章: 数と計算                                                                  13
3章: 文字列                                                                     17
トライ2
line_width = 40
puts '目次'.center(line_width)
puts ''
puts '1章: プログラミングを始める前の準備'.ljust(line_width/2) + '  1'.rjust(line_width/2)
puts '2章: 数と計算'.ljust(line_width)+ ' 13'.rjust(line_width/2)
puts '3章: 文字列'.ljust(line_width)+ ' 17'.rjust(line_width/2)

Oh, daibumashi.

moomin:ProgrammingRuby tomomi$ ruby method2.rb
                 目次                 

1章: プログラミングを始める前の準備                   1
2章: 数と計算                                    13
3章: 文字列                                       17

もうひとふんばってみる。

トライ3
line_width = 40
puts '目次'.center(line_width)
puts ''
puts '1章: プログラミングを始める前の準備'.ljust(line_width/2) + '   1'.rjust(line_width/2)
puts '2章: 数と計算'.ljust(line_width/2)+      '                                        13'.rjust(line_width/2)
puts '3章: 文字列'.ljust(line_width/2)+        '                                         17'.rjust(line_width/2)
moomin:ProgrammingRuby tomomi$ ruby method2.rb
                 目次                 

1章: プログラミングを始める前の準備                   1
2章: 数と計算                                        13
3章: 文字列                                          17

やった!Done!!
頁表記の頭揃えの調整はスペースでなんとかする人力技。