質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

1561閲覧

条件分岐などの具体的な使用例について

ShoTakigasaki

総合スコア18

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2015/04/30 09:42

プログラミングでwebアプリケーション等を作成した経験がなく、
「たのしいRuby」を半分ほど読んだところで学んだことが実際どのような機能を作る際に使用されているのかと思い少し考えました。
間違っている!ということや、他にもこういう機能を作るときに使うことが多いなどあれば教えて頂けると今後も技術書の流し読みにならずイメージしながら勉強できるのでお願いしたいです。
よろしくお願いします。
ちなみにコードがほぼ書けないので具体的な処理内容などは日本語で書いてしまっています。

< if文 >
・ログイン判定
if ( ログインしているかどうか ) {
ログアウトボタンを表示する
編集ボタンを表示する
}
else {
ログインボタンを表示する
}
end
< case文 >
・思いつかない
・誰か教えて欲しい

< for文>
・記事の表示など
posts = [ “post1”, “post2”, “post3”, ... ]
for post in posts
10件ずつ記事を取得する
end

< while文>
・現在のカテゴリを判定し、そのカテゴリ内から関連記事を取得する
def check()
category = [ “美容”, “恋愛”, “ファッション”, “ライフスタイル" ]
while 現在のカテゴリと一致するカテゴリ {
記事をランダムで3件取得する
end
end
・カテゴリの判定ってどうやるんだ?

< eachメソッドのユースケース >
・for文ではダメなのか。

< loopメソッド >
・終了条件がない繰り返しって使用場面あるんでしょうか。
・広告をloopメソッドで出しまくって×ボタンを押されたときにbreakが呼ばれて広告が閉じるとか?

< イマイチよくわかっていないやつ >
・例外処理 ( 条件分岐と何が違うのか )
・ブロック ( 引数の上位互換的な? )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

使用例についてのご参考になればと思い一例をいくつか書きます。

if-else条件判定については、
事前に登録されたユーザであるか、退会済か、スコアが100点以上
case文については、
ユーザーの種類が下記に該当するか。

  1. 一般
  2. プレミヤ
  3. ゴールド
  4. プラチナ

for文については、
登録されている登録コミュニティの30件分を 1件ごとに表示する。
登録されているフレンドを100件分20件ごとに表示する。
while文については、
1.ゲーム終了ボタンを押すまで、ひたすらゲームを実行する。
2.登録されている物件数がなくなるまで、繰り返し、あらかじめ選択した1LDKの○○地区の物件を表示する。
each文については、
while文でつかわれたり、for文でつかわれる情報の集合体である(コレクションと言います)
を一括操作する作業に向いています。

  1. ○○地区の物件リストの全出力
  2. ユーザーのフレンドの全出力

loopは、僕も迷いますが・・・
無限に続く繰り返しを短く書くことができるので、事例は少ないですが、役に立つ場面はあるかもしれませんね。

  1. 再帰処理
  2. ゲームのmainloop(while文の1.と同じ)

※ただしどちらも終了条件が明確でないと処理が終わらないことになります。
例外処理については、

  1. ユーザーが誤った入力をした場合(数字しかうけつけないのに英字や日本語を書いてしまったとか)
  2. 存在しないファイルを開こうとした。
  3. あらかじめ定義した配列の数が2つしかないのに3つ目にアクセスしてしまった。

ブロックについては、使用例は、ちょっと忘れました。
なかなか面白い組み方があったかと思いますが。

投稿2015/04/30 11:49

lib

総合スコア446

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ShoTakigasaki

2015/05/01 02:53

回答ありがとうございます! なるほど、case文の例は感動しました、確かに挙げていただいた例ならcase文を使うのが良さそうですね! for文とwhile文の違いやeachメソッドについてもわかりやすくて参考になります! 例外処理は、 unless (数列が入った場合つまり正しい時の処理) {  例外処理に関する記述(上の条件が偽だった場合に実行) } end とかではダメなのかなと思っていましたが今一度、例外処理の部分を読んでみたら"エラーが起こると例外が発生し、例外が発生するとプログラムの実行が一時中断し例外処理を探す"と書いてあったのでエラーが起きた際に実行する処理に関してはやはり例外処理として記述すべきと解釈しました!(unless文の例だとエラーが起きて例外処理を探したときに実行されないため相応しくないと) ブロックはRubyでも重要な項目だそうなのでまだイマイチよくわかっていませんが、いくつかブロックの使用例を見てみて慣れることから始めたいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問