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

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

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

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

Q&A

解決済

2回答

1675閲覧

C#でスコープ外のプログラムを引用する。

hayato208

総合スコア19

C#

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

0グッド

0クリップ

投稿2019/03/14 14:21

###実現したいこと
C#でスコープ外のプログラム(クラス?)にアクセスしたいです。
下記プログラムで言えばcase2を選択した場合、「 Console.WriteLine("0:ラーメン 1:カレー");」を選択できるようにしたいです。

C#

1 public static void Main() 2 { 3 Console.WriteLine("0:ラーメン 1:カレー"); 4 Console.Write("好きな食べ物――"); 5 String stfood = Console.ReadLine();//p35 6 int nfood = Int32.Parse(stfood); 7 if (nfood == 0) 8 { 9 Console.WriteLine("0:醤油 1:味噌 2:食べ物の選択肢に戻る"); 10 Console.Write("何味が好き――"); 11 String deathWhere = Console.ReadLine();//p35 12 switch (deathWhere)//p113 13 { 14 case "0": 15 Console.WriteLine("――私も醤油が好きです――"); 16 break; 17 case "1": 18 Console.WriteLine("――味噌も美味しいですね――"); 19 break; 20 case "2"://ここに何かしらの処理を加えて、「Console.WriteLine("0:ラーメン 1:カレー");」の選択肢を再び表示させたい 21 } 22 }

お手数ですが、回等願います。

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

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

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

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

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

guest

回答2

0

プロジェクトに含めているなら、uses に追加しとけば参照できるけど、そういうことかな?

投稿2019/03/14 14:26

y_waiwai

総合スコア87719

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

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

hayato208

2019/03/14 15:02

すみません、あっているか分かりませんのでusesについて解説されているリンクか何か頂けないでしょうか。 やりたい挙動と致しましては、case2が選ばれた場合、3行目の「Console.WriteLine("0:ラーメン 1:カレー");」に飛ぶ(戻る)処理です。 goto文も考えたのですが、スコープ外には制御が移せませんでした。
y_waiwai

2019/03/14 15:08

ああ、そこに戻るだけなら、全体をwhileのループで囲んでしまえばいいだけですね。 って、別回答で出てるので、それを参照してください #質問を深読みしすぎてしまったw
hayato208

2019/03/14 15:15

解答ありがとうございます。 whileでループする形が一番無難そうですね。ありがとうございました。
guest

0

ベストアンサー

2通りのやり方がある。

1.全体をwhileで囲んで、case2以外をbreakさせる
2.冒頭にラベルを張って、case2の時にgoto ラベルする

1.

C#

1 static void Main(string[] args) 2 { 3 while (true) 4 { 5 Console.WriteLine("0:ラーメン 1:カレー"); 6 Console.Write("好きな食べ物――"); 7 string stfood = Console.ReadLine(); 8 9 if (int.TryParse(stfood, out int nfood)) 10 { 11 if (nfood == 0) 12 { 13 Console.WriteLine("0:醤油 1:味噌 2:食べ物の選択肢に戻る"); 14 Console.Write("何味が好き――"); 15 string deathWhere = Console.ReadLine(); 16 17 switch (deathWhere) 18 { 19 case "0": 20 Console.WriteLine("――私も醤油が好きです――"); 21 break; 22 case "1": 23 Console.WriteLine("――味噌も美味しいですね――"); 24 break; 25 } 26 27 if (deathWhere != "2") 28 { 29 break; 30 } 31 } 32 } 33 } 34 }

2.

C#

1 static void Main(string[] args) 2 { 3 Start: 4 Console.WriteLine("0:ラーメン 1:カレー"); 5 Console.Write("好きな食べ物――"); 6 string stfood = Console.ReadLine(); 7 8 if (int.TryParse(stfood, out int nfood)) 9 { 10 if (nfood == 0) 11 { 12 Console.WriteLine("0:醤油 1:味噌 2:食べ物の選択肢に戻る"); 13 Console.Write("何味が好き――"); 14 string deathWhere = Console.ReadLine(); 15 16 switch (deathWhere) 17 { 18 case "0": 19 Console.WriteLine("――私も醤油が好きです――"); 20 break; 21 case "1": 22 Console.WriteLine("――味噌も美味しいですね――"); 23 break; 24 default: 25 goto Start; 26 } 27 } 28 } 29 }

投稿2019/03/14 14:47

編集2019/03/14 15:01
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hayato208

2019/03/14 15:17

迅速な解答ありがとうございます。 少し理解できていない部分もありますが落ち着いて読み解いていこうと思います。 コードも載せていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問