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

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

ただいまの
回答率

88.04%

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

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,200

score 25

プログラミングで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が呼ばれて広告が閉じるとか?

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 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/05/01 11:53

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

    キャンセル

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

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る