teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

コードの説明を記述しました。

2017/10/19 16:16

投稿

koume
koume

スコア458

title CHANGED
File without changes
body CHANGED
@@ -1,24 +1,31 @@
1
1
  Rails5.1.3でWebアプリケーション制作の勉強中です。条件分岐の記述について教えてください。
2
2
  やりたいことは 数段階に分けて条件分岐し途中で条件がtrueになったら抜けるみたいなイメージです。
3
3
  ```ここに言語を入力
4
- if @ddd == @fff
5
- @lily = @ddd
6
- kkk = []
7
- kkk << @ccc
4
+ @cccにはチェックしたい主キーが入っています
8
- else
5
+ ・eeeには@cccの中の「在籍」のidが入っています。
9
- vvv = @ccc - eee
6
+ @dddには@cccの要素数が入っています。
7
+ ・@fffには@cccの中の「在籍」の要素数が入っています。
8
+
9
+
10
+ if @ddd == @fff------------------ # 要素数の数が同じだったらこの式から抜ける。          
11
+  @lily = @ddd ----------------- # @lilyの値をビューに渡し表示する。
12
+ else ---------------------------- # 要素数の数が違った場合、以下を実行する。
13
+ kkk = [] ---------------------- # kkkという空の配列を作る。
14
+ kkk << @ccc ------------------- # if文を実行するため配列kkkに値を入れる。
15
+ vvv = [] ---------------------- # register_checkで使用する配列を作成。
16
+ vvv = @ccc - eee -------------- # 配列vvvに不在の主キーを代入する。
17
+ register_check ---------------- # ここでvvvのグループの現在の月の在籍、不在をチェックする。
18
+ if kkk.empty? ---------------- # チェックした結果、在籍が 0 なら1回目のチェックをする。
10
- register_check
19
+ register_check  
11
- if kkk.empty?
12
- #register_check 
20
+ else -------------------------- # 在籍が1つ以上あれば以下を実行しこの式から抜ける。
13
- else
14
- eee << r
21
+ eee << r ------------------- # 在籍が1つ以上あれば配列にrを代入する。
15
- if kkk.empty?
22
+ if kkk.empty? --------------- # チェックした結果、在籍が 0 なら2回目のチェックをする。
16
23
  register_check 
24
+ else ------------------------ # 在籍が1つ以上あれば以下を実行しこの式から抜ける。
25
+ eee << r ------------------ # 在籍が1つ以上あれば配列にrを代入する。
26
+ if kkk.empty? ------------- # チェックした結果、在籍が 0 なら3回目のチェックをする。
27
+ register_check 「在籍」が確認出来るまで以下これを数回繰り返す。 
17
- else
28
+ else
18
- eee << r
19
- if kkk.empty?
20
- register_check 
21
- else
22
29
  eee << r
23
30
  if kkk.empty?
24
31
  register_check 
@@ -90,4 +97,8 @@
90
97
  end
91
98
  end
92
99
  end
93
- ```
100
+ ```
101
+ 追記
102
+ コードの説明を記述中におかしなところがあったので少し編集しました。
103
+ 意味を持った変数名にしようとしましたがいいのが思いつかなかったので変更しておりません。すいません。
104
+ このような記述でチェックをして何回目かで「在籍」が確認できた場合(配列kkkが「空」じゃない。)にその時点でこの式から抜け出すようにしたいのですがこのような記述でいいのでしょうか?わかりにくくてすいません。宜しくお願いします。

1

register_checkのコードを追加しました。

2017/10/19 16:16

投稿

koume
koume

スコア458

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,54 @@
40
40
  ```
41
41
  同じコードの繰り返しになっていますが メソッドregister_check を実行し 配列 kkk に値を代入し、次の if kkk.empty? が false だったら途中で抜けるとしたいのです。
42
42
  質問内容が少し雑でわかりにくいかと思いますが、こんな感じで条件分岐をつなげての記述はできるのでしょうか?
43
- どなたか教えていただけないでしょうか?宜しくお願いします。
43
+ どなたか教えていただけないでしょうか?宜しくお願いします。
44
+
45
+ 追記
46
+ ```ここに言語を入力
47
+ def register_check
48
+ vvv.each do |t|
49
+ hhh = Customer.find_by(id: t)
50
+ iii = hhh.nickname
51
+ aaa = Sponsor.where(sponsor1: iii).pluck(:customer_id)
52
+ kkk = []
53
+ vvv = []
54
+
55
+ aaa.each do |u|
56
+ @coala = Ragister.find_by(customer_id: u)
57
+ if @month == 1
58
+ fox = @coala.jan
59
+ elsif @month == 2
60
+ fox = @coala.feb
61
+ elsif @month == 3
62
+ fox = @coala.mar
63
+ elsif @month == 4
64
+ fox = @coala.apr
65
+ elsif @month == 5
66
+ fox = @coala.may
67
+ elsif @month == 6
68
+ fox = @coala.jun
69
+ elsif @month == 7
70
+ fox = @coala.jul
71
+ elsif @month == 8
72
+ fox = @coala.aug
73
+ elsif @month == 9
74
+ fox = @coala.sep
75
+ elsif @month == 10
76
+ fox = @coala.oct
77
+ elsif @month == 11
78
+ fox = @coala.nov
79
+ else
80
+ fox = @coala.dec
81
+ end
82
+
83
+ if fox == "在籍"
84
+ kkk << u
85
+ end
86
+
87
+ if fox == "不在"
88
+ vvv << @ccc
89
+ end
90
+ end
91
+ end
92
+ end
93
+ ```