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

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

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

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

Q&A

解決済

2回答

4858閲覧

C# - 1週間で身につくC#言語のチャレンジ問題の解答コードがわからない

satokiti

総合スコア10

C#

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

0グッド

0クリップ

投稿2019/06/13 04:41

C#初心者です。
一週間で身につくc#言語の基本というサイトで、わからない問題があります。
http://csharp.sevendays-study.com/problem3.html#problem4

prob4-8.(難易度:★★)
whileの無限ループを作り、その中で、コンソールから0以上の整数値を入力させ、その値を表示させなさい。その際、マイナスの数値が入力されたら、ループを抜け、”終了します”と表示してプログラムを終えるようにしなさい。

期待される実行結果
0以上の数値を入力してください:5
5
0以上の数値を入力してください:3
3
0以上の数値を入力してください:2
2
0以上の数値を入力してください:1
1
0以上の数値を入力してください:9
9
0以上の数値を入力してください:-1 ← 0未満の数値が入力されたら、ループから抜ける。
終了します

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

「0以上の数値を入力してください」を連続して出せません。

該当のソースコード

ソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

ループ自体があまり理解できていないので、回答を頂けると有難いです。

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

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

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

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

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

nskydiving

2019/06/13 04:54

>ループ自体があまり理解できていないので ループの何が理解できていないのでしょうか? 提示していただいているサイトでも解説されているようですが、読まれましたでしょうか? http://csharp.sevendays-study.com/day4.html
azuapricot

2019/06/13 04:54

ご自分のコードを提示してもらわないとどこがあっててどこが間違ってるのかなんてわかりません
x_x

2019/06/13 05:01

基本編第4日目参照とあるので4日目を見ると詳しく解説してあるようです。ここをこなしたうえでわからないということでしょうか?
m.ts10806

2019/06/13 05:50

あまり「一週間」とか期間を鵜呑みにしないようしてくださいね。 その人の資質によります。
satokiti

2019/06/13 06:29

コメントありがとうございます。 4日目を理解したのですが、わかりませんでした。 4日目だけでできるものなのでしょうか? 過去のものと組み合わさってるとまだ出来なくて・・・
m.ts10806

2019/06/13 06:30

そういうときは1~3日目の内容も根本的な理解に至っていないと言えます。 何度でも振り返ってください。 あと、ほぼ解決されないまま同種の質問は避けられたほうが良いです。 https://teratail.com/questions/194764
satokiti

2019/06/14 02:23

もう一度やってみて解決しました。 namespace ConsoleApplication2 { class Program { static void Main(string[] args) { while (true) { Console.Write("0以上の数値を入力してください:"); int a = int.Parse(Console.ReadLine()); if (a < 0) { Console.WriteLine("終了します。"); break; // ループから抜ける } } } } }
guest

回答2

0

ループ自体を理解できていないなら、まずきちんと理解しましょう。

ここで答えを書いても、あなたのためになりません。

投稿2019/06/13 04:54

tacsheaven

総合スコア13703

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

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

satokiti

2019/06/13 06:32

もう一人の方の回答を見ても、理解できなかったのでもう一度最初から見直します。 ご回答、ありがとうございます。
guest

0

ベストアンサー

自分もC#初心者で,勉強に丁度良さそうなので,途中まで試行錯誤してみました.
まだ途中状態(値が負だったら…という部分が無いです)のコードですが,参考になるかもしれないので以下に示します.
少なくとも,

「0以上の数値を入力してください」を連続して出せません。

という問題点についてはクリアできているのではないかと思います.

while( true ) //無限ループ { Console.Write( "0以上の数値を入力してください:" ); string Str = Console.ReadLine(); int Value; if( !int.TryParse( Str, out Value ) ) {//数値に解釈できない場合はどうすれば? break; //※終了に向かうことにしておく } Console.WriteLine( "{0}", Value ); } Console.WriteLine( "終了します" );

コンソールから0以上の整数値を入力させ

という部分の良い方法がわからなかったので,上記のようになっています.
問題文には数値に解釈できない場合への言及が無いようですし,
そういうことが起きない別の方法があるのかもしれません.
(もしよろしければ,コメントとかで教えて頂けると助かります!)

投稿2019/06/13 05:24

fana

総合スコア11632

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

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

satokiti

2019/06/13 06:33

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問