質問編集履歴
2
コードの説明を記述しました。
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
|
-
|
4
|
+
・@cccにはチェックしたい主キーが入っています
|
8
|
-
|
5
|
+
・eeeには@cccの中の「在籍」のidが入っています。
|
9
|
-
|
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
|
-
|
19
|
+
register_check
|
11
|
-
if kkk.empty?
|
12
|
-
|
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
|
-
|
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のコードを追加しました。
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
|
+
```
|