!Mac OS X-10.15.7 !ruby-2.7.1p83
if-elsif-else-end
講義ページリンク
チャート式ruby-III(if, case, array, each by leap year)
内容
Rubyにおける条件分岐の書き方
課題
入力された整数がうるう年かどうか表示するプログラムの作成
解答例
def leap?(year)
(year % 400).zero? || !(year % 100).zero? && (year % 4).zero?
end
year = ARGV[0].to_i
p year
p leap?(year)
出力
> ruby check_leap_year.rb 2004
2004
true
> ruby check_leap_year.rb 1999
1999
false
> ruby check_leap_year.rb 1900
1900
false
> ruby check_leap_year.rb 2000
2000
true
NOTE
- 上記のコードはRubocopでフォーマッティングした
- LSPを使っているならRuby用のSolargraphというのがあるが,自分の環境(neovim + coc.nvim + coc-solargraph)では動作が不安定だったため見送り
- Vimにはvim-rubocopというプラグインがあったので,本講義の課題のコードの解析ぐらいの用途ならこれで十分
- ちなみに,ファイル保存時に自動でフォーマットするには,.vimrcに
autocmd BufWritePost *.rb :RuboCop -A
と記述すればよい(いるのか知らんがvimmer only)
- Rubocop基準では上記のようなフォーマットが望ましいようだ
- booleanを返すメソッドには
return
を書かない -
==0
じゃなく.zero?
でゼロ判定 - 細かいことはスタイルシート参照
- booleanを返すメソッドには
- あとorgファイルで
#+include:
でインクルードしたソースコードにシンタックスが適用されない(なんで?)
- source ~/multiscalesim_toku/grad_members_20f/members/lynd2299/mss7.org