前提・実現したいこと
とあるサイトにコンソールに数値を入力し、その数だけ■を表示するという問題があり、それをwhile文、do while文のループ処理を使って実行できるようにしたいのですが、現状どの数値を入力しても■が1つしか表示されません。
for文は作ることが出来ましたがそこから数値等を揃え並べてみたのですが、一向に望む結果を得ることが出来ませんでした。
該当のソースコード
C#
1static void Main(string[] args) 2 { 3 Console.Write("■の数を入力:"); 4 int i = int.Parse(Console.ReadLine()); 5 int a =0 6 while(a < i) 7 { 8 Console.Write("■"); 9 i++; 10 break; 11 } 12 Console.WriteLine() 13 }
static void Main(string[] args) { Console.Write("■の数を入力:"); int i = int.Parse(Console.ReadLine()); int a = 0; do { Console.Write("■"); i++; break; } while (a < i); Console.WriteLine(); }
試したこと
()部分を(true)にしたり(0<i)にしてみましたが結果は変わりませんでした。
i++;の位置変更も結果に変化はありませんでした。
int i = 1だけ書いた場合、int a = 0を書いていない場合も変化はありませんでした
("■")の表記を(i+"■")にしても望む結果は得られませんでした。
補足情報(FW/ツールのバージョンなど)
windows
Visual studio 2019
aとiの値がいくつでどちらが大きいのか考えましょう。
また、前の質問で教えてもらったようにステップ実行してみてどのように動作しているか確認しましょう
これは初心者だからという問題なんだろうか。
もしかして何かハンディキャップ持ってます?
int i が何か? int a が何か?整理してみてはどうですか?何をカウントアップしていくべきなのか見えてくるのではないでしょうか?
前にも同じ質問のスレッド https://teratail.com/questions/355887 があったけど、その時は解決できたのに今回何故だめなのですかね?
> 試したこと
が全体的に意味不明.
何故それを試せば良いと考えたのか? という根本の部分が存在しているように見えない.
プールの中に部品を投げ込んだら偶然時計が組みあがる確率はゼロではないかもしれないけども
一般に(?),プログラミングという行為は
そのような奇跡を期待して無計画にコードをいじくり回すことではないよ.
前のご質問中のコードはご自身で考えて書いたのですよね。
> ()部分を(true)にしたり(0<i)にしてみましたが結果は変わりませんでした。
コードを考えなくあれこれいじくりまわしてもダメなのですが。自分の考えをコードに書き出すようにしないと。
テンプレートや前回のコードを参照しつつ組み立てましたが、まず基礎自体がしっかり理解できておらず、どこがおかしいのか分からずじまいのまま模索したり調べたりしていたので最終的におかしなことになっていました。
基礎もそうですが、前回の質問でブレークポイントという機能を教わったのに、使っていないからどこがおかしいか判らないのでは?ブレークポイントで要所要所で止めたり、一行づつ実行して条件式や変数の値を確認したりすれば、普通の人ならどこでおかしい挙動しているか判るでしょう。
まずきちんとデバッガの使い方を覚えましょう。
回答2件
あなたの回答
tips
プレビュー