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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

3855閲覧

半角スペース区切りで文字を出力したい

FukaHire7533

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/06/13 22:04

前提

PaizaラーニングでC#の演習問題で、「半角スペース区切りでの出力」をやっていますが、解けず詰まっています。
グーグルで検索して見てみても、あまり腑に落ちるサイトが見つかりませんでしたの質問させていただきました。

実現したいこと

整数n回分だけ半角スペース区切りで「paiza」と出力するようにしたい

↓出力はこのような感じです
paiza paiza

発生している問題・エラーメッセージ

Main.cs(15,22): error CS0136: A local variable named `data' cannot be declared in this scope because it would give a different meaning to `data', which is already used in a `parent or current' scope to denote something else

該当のソースコード

using System; class Program { static void Main() { // 自分の得意な言語で // Let's チャレンジ!! int data = int.Parse(Console.ReadLine()); string paiza = ""; for(int i = 0; i < data; i++) { paiza = "paiza "; string[] data = paiza.Split(' '); Console.Write(paiza); } } }

試したこと

C#入門編4の「Splitで文字列を分割する」の動画を参考

参考サイト(Qiita)

https://qiita.com/fujiab/items/4e19f78ceeabedd43588

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

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

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

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

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

Zuishin

2022/06/13 22:50

参考にしている動画やページは、空白区切りの文字列を分解する方法ですが、あなたのしたいのは逆でしょう?
退会済みユーザー

退会済みユーザー

2022/06/13 22:51

自分でも意味がわかってないテキトーに書いたコードを丸投げするのは止めましょう。
dodox86

2022/06/14 00:48

ググるまでも無く、n回の繰り返しの途中か終わりかで半角スペースを出力するかどうか制御するようなコードを考えられるかが求められているのだと思います。既に回答や指摘をいただいていますが、何となくコードを書き進めるのは止めましょう。出力さえ合っていれば良いので、Linq使ってもできるでしょうけど。
fana

2022/06/14 01:11

まずは「1回出力するだけ」を作ってみるべきと見える. それができたら,「1回出力する」ための記述をてきとーに複数個書き並べて複数回連続で出力することを実現し,その出力結果の様子(繋がっている)を見て,間に空白を入れる方法を検討→実現する. 「指定された個数だけ空白区切りで出力」は以上ができてから取り組むのが良かろう. …っていう感じで1歩ずつ着実に進めていくべき.常に次のステップを見据えて小刻みに学んでいけば「Splitがどうの」とかいうような無関係なゴミが唐突に入り込む余地はないであろう,と思う.
BeatStar

2022/06/14 01:36

基礎からやりましょう。
FukaHire7533

2022/06/14 12:56

質問の仕方が悪く、大変申し訳ありませんでした。また新たな質問をするときは、公式のある質問するときのヒントをもう一度確認してから質問するように心掛けます。
fana

2022/06/15 00:57

(質問の仕方 ではなくて 取り組み方/学習の進め方 の問題だと思う)
guest

回答3

0

ベストアンサー

いろいろ方法があります。例えばこんな感じです。

C#

1 //例1 2 { 3 var count = 5; 4 var str = "test"; 5 var output = ""; 6 for(var i = 0; i < count; i++) 7 { 8 if (string.IsNullOrEmpty(output)) 9 { 10 output += str; 11 } 12 else 13 { 14 output += " " + str; 15 } 16 } 17 Console.WriteLine($"例1={output}"); 18 } 19 //例2 20 { 21 var count = 5; 22 var str = "test"; 23 var output = ""; 24 var list = new List<string>(); 25 for (var i = 0; i < count; i++) 26 { 27 list.Add(str); 28 } 29 output = string.Join(" ", list); 30 Console.WriteLine($"例2={output}"); 31 } 32 //例3 33 { 34 var count = 5; 35 var str = "test"; 36 var list = Enumerable.Repeat(str, count); 37 var output = string.Join(" ", list); 38 Console.WriteLine($"例3={output}"); 39 }

投稿2022/06/14 01:55

kikukiku

総合スコア514

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

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

FukaHire7533

2022/06/14 12:44 編集

アドバイスありがとうございます!3パターン試してみてすべてうまくいきました! 今回3パターンの手順をざっくりとまとめてみました。 例1 for分を5回繰り返し、1回目は空文字列なのでoutput += str;となり、 2回目以降はoutputに文字列が代入されているのでoutput += " " + str;となるのでスペース区切りになる 例2 for分でList型のlistに5回繰り返し代入し、string.Joinで" "をlistに連結させる 例3 Enumerable.Repeatを使って、指定した型の要素を指定した数(5回)分だけlistに代入。 string.Joinで" "をlistに連結させる という認識でよろしいでしょうか?
kikukiku

2022/06/14 23:42

その認識であっています。
FukaHire7533

2022/06/15 11:28

ありがとうございます!
guest

0

英語のエラーメッセージが読めないなら、エラーメッセージを翻訳サイトで日本語に直して、意味を読み取りましょう。

投稿2022/06/14 02:14

otn

総合スコア84423

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

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

退会済みユーザー

退会済みユーザー

2022/06/14 05:41

回答欄には回答を書くようお願いします。
otn

2022/06/14 13:57 編集

エラーメッセージの意味を読み取ることで、エラーは解消できると思いますけど。 魚の釣り方を教えるのではなくて、釣った魚を与えないといけないいう方針ですか?
退会済みユーザー

退会済みユーザー

2022/06/14 23:02

質問のエラーの解消が本題の「半角スペース区切りで文字を出力したい」に繋がらないと思います。質問のコードには Split とかが出てきてやってることが見当外れですから。
otn

2022/06/15 09:17

なるほど。エラーの解消だけ指導しても駄目と言うことですね。指摘内容が理解できました。
guest

0

int dataと、string[] dataで名前を被せる必要性はなんでしょう?
しかも後者は利用していないようですが?

ループの中で繰り返し
paiza = "paiza ";
を入れる意味もない…ですよね?

投稿2022/06/13 22:08

setoppu

総合スコア291

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

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

len_souko

2022/06/14 01:43

回答して下さい 質問者への質問は修正依頼などの方に記載してください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問