質問編集履歴
3
自分がうったコードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
duplicate = cnt;
|
122
122
|
|
123
|
-
|
123
|
+
|
124
124
|
|
125
125
|
|
126
126
|
|
2
試したことの編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -160,15 +160,11 @@
|
|
160
160
|
|
161
161
|
とするそうです。
|
162
162
|
|
163
|
-
var cnt=0;をforeach外で定義すると、2が出力、中だと5が出力される。
|
164
|
-
|
165
|
-
if (cnt != 1){break;}を消してみて、duplicate = cnt;だけ残したが、5は変わらなかった。ただ、その状況でvar cnt=0;をforeach外で定義すると、28が出力された。
|
166
|
-
|
167
163
|
|
168
164
|
|
169
165
|
### 補足情報(FW/ツールのバージョンなど)
|
170
166
|
|
171
|
-
なお、このサイトでの質問が初めての為、マルチポストがダメなのを知らず、知恵袋の方に先に質問しています。知恵袋では心配でしたのでこちらにも質問しました。なお、知恵袋には正しいソースコードを、こちらでは自分が入力した間違いのソースコードを記入しています。知恵袋の方
|
167
|
+
なお、このサイトでの質問が初めての為、マルチポストがダメなのを知らず、知恵袋の方に先に質問しています。知恵袋では心配でしたのでこちらにも質問しました。なお、知恵袋には正しいソースコードを、こちらでは自分が入力した間違いのソースコードを記入しています。知恵袋の方でも教えていただいているので、そちらの方もご参照下さい。https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13214577238
|
172
168
|
|
173
169
|
また、こちらの問題はpaizaラーニングというこちらのサイトの
|
174
170
|
|
1
実現したいことの具体化、自分が記入したコードと正解のコードの記入、マルチポストの対処
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
+
<ソースコードとして前提>
|
3
4
|
|
5
|
+
用意している配列において、同じ要素の数をカウントして、その数を出力したい。(5を出力)
|
4
6
|
|
5
|
-
|
7
|
+
<自分として実現したいこと>
|
6
8
|
|
9
|
+
ただこのコードの
|
7
10
|
|
11
|
+
var cnt = 0;の位置がどこにあるべきかの理由を知りたいだけです。
|
8
12
|
|
9
13
|
|
10
14
|
|
@@ -14,21 +18,29 @@
|
|
14
18
|
|
15
19
|
```
|
16
20
|
|
17
|
-
|
21
|
+
自分では以下の様なコードを入力しました。
|
18
22
|
|
19
|
-
|
23
|
+
var cnt = 0;
|
24
|
+
|
25
|
+
foreach (var pattern in array)
|
26
|
+
|
27
|
+
{
|
28
|
+
|
29
|
+
foreach (var word in array)
|
20
30
|
|
21
31
|
{
|
22
32
|
|
23
|
-
|
33
|
+
if (pattern == word)
|
24
34
|
|
35
|
+
{
|
36
|
+
|
25
|
-
|
37
|
+
cnt++;
|
38
|
+
|
39
|
+
}
|
26
40
|
|
27
41
|
}
|
28
42
|
|
29
|
-
が何をしているかわからない。
|
30
|
-
|
31
|
-
|
43
|
+
調べた結果、正解は
|
32
44
|
|
33
45
|
foreach (var pattern in array)
|
34
46
|
|
@@ -50,7 +62,7 @@
|
|
50
62
|
|
51
63
|
}
|
52
64
|
|
53
|
-
で、foreachの中に以上のようにvar cnt=0;を置くのが正解らしいが、外に置くとなぜ
|
65
|
+
で、foreachの中に以上のようにvar cnt=0;を置くのが正解らしいが、foreachの中にvar cnt = 0;が入っているということは、毎回、var cnt = 0;が作られていませんか。foreachの中の状況がいまいちわかりません。外に置くとなぜ間違いかわからない。
|
54
66
|
|
55
67
|
```
|
56
68
|
|
@@ -62,7 +74,7 @@
|
|
62
74
|
|
63
75
|
```C#
|
64
76
|
|
65
|
-
//これは
|
77
|
+
//これは自分がうった間違いのソースコードです。
|
66
78
|
|
67
79
|
using System;
|
68
80
|
|
@@ -82,11 +94,11 @@
|
|
82
94
|
|
83
95
|
|
84
96
|
|
97
|
+
var cnt = 0;
|
98
|
+
|
85
99
|
foreach (var pattern in array)
|
86
100
|
|
87
101
|
{
|
88
|
-
|
89
|
-
var cnt = 0;
|
90
102
|
|
91
103
|
foreach (var word in array)
|
92
104
|
|
@@ -104,15 +116,13 @@
|
|
104
116
|
|
105
117
|
|
106
118
|
|
107
|
-
|
119
|
+
|
108
|
-
|
109
|
-
{
|
110
120
|
|
111
121
|
duplicate = cnt;
|
112
122
|
|
113
123
|
break;
|
114
124
|
|
115
|
-
|
125
|
+
|
116
126
|
|
117
127
|
}
|
118
128
|
|
@@ -132,7 +142,23 @@
|
|
132
142
|
|
133
143
|
### 試したこと
|
134
144
|
|
145
|
+
正解を調べたところ、発生している問題・エラーメッセージのようにするのが正解のようです。
|
135
146
|
|
147
|
+
また、duplicate = cnt;
|
148
|
+
|
149
|
+
break;
|
150
|
+
|
151
|
+
を、if (cnt != 1)
|
152
|
+
|
153
|
+
{
|
154
|
+
|
155
|
+
duplicate = cnt;
|
156
|
+
|
157
|
+
break;
|
158
|
+
|
159
|
+
}
|
160
|
+
|
161
|
+
とするそうです。
|
136
162
|
|
137
163
|
var cnt=0;をforeach外で定義すると、2が出力、中だと5が出力される。
|
138
164
|
|
@@ -142,6 +168,10 @@
|
|
142
168
|
|
143
169
|
### 補足情報(FW/ツールのバージョンなど)
|
144
170
|
|
171
|
+
なお、このサイトでの質問が初めての為、マルチポストがダメなのを知らず、知恵袋の方に先に質問しています。知恵袋では心配でしたのでこちらにも質問しました。なお、知恵袋には正しいソースコードを、こちらでは自分が入力した間違いのソースコードを記入しています。知恵袋の方が深く教えていただいているので、そちらの方もご参照下さい。https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13214577238
|
145
172
|
|
173
|
+
また、こちらの問題はpaizaラーニングというこちらのサイトの
|
146
174
|
|
147
|
-
|
175
|
+
https://paiza.jp/works
|
176
|
+
|
177
|
+
レベルアップ問題集、Bランクレベルアップセット、C#編、文字と整数の組のソート2、STEP3の問題になります。
|