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

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

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

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

Q&A

解決済

4回答

2185閲覧

Console.WriteLineとかいてあるのに表示されない

BizarreWanderer

総合スコア8

C#

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

0グッド

1クリップ

投稿2021/06/17 08:20

編集2021/06/17 08:34

質問ではなく疑問なんですが、なぜstatic void Shop() のあとにConsole.WriteLineが続いてるのに
この部分の文字は表示されないのでしょうか
二回「いらっしゃいませ!」と表示されないのはなぜでしょう?
文字が表示されるのはmainと書かれているかっこ内だけなのですか??

using System; namespace ConsoleApp1 { class Program { // Sample18 // 「いらっしゃいませ!」と表示するメソッドを定義 static void Shop() { Console.WriteLine("いらっしゃいませ!"); } static void Main(string[] args) { // Shop メソッドを呼び出す Shop(); } } }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/06/17 08:32

質問にある「この部分の文字」とは何を指していますか? コンソールアプリケーションであれば、「いらっしゃいませ!」と表示されると思いますが。
BizarreWanderer

2021/06/17 08:37

userisgodさん ありがとうございます! static void Shop で一回「いらっしゃいませ!」とかいてあるのでそのあとの呼び出しとで二回表示されると思ったのですが、一回だけの表記の理由を知りたいです!
YAmaGNZ

2021/06/17 08:49

ステップ実行すればどのようにプログラムが実行されているか分かります。 デバッグしてください。
BizarreWanderer

2021/06/17 09:03

YAmaGNZさん ありがとうございます! ステップ実行をいうものがあるんですね、やってみます! わけわからないことが沢山かかれていそうですけども…
guest

回答4

0

ベストアンサー

文字が表示されるのはmainと書かれているかっこ内だけなのですか??

実行可能なアプリケーションはMainメソッドを持ち、1つの場合はそのメソッドが最初に呼び出されます。

質問中のコードであれば、上から逐次解釈されるわけではなく、
Shop()はMainメソッドから呼び出されている1回のみ、実行されています。
表示されていないわけではなく、実行自体がMainメソッドからの呼び出しの1回のみです。
なので、「文字が表示されるのは~」ということではありません。

エントリー ポイント ++C++

csharp

1using System; 2 3namespace ConsoleApp1 4{ 5 class Program 6 { 7 // Sample18 8 // 「いらっしゃいませ!」と表示するメソッドを定義 9 static void Shop() 10 { 11 Console.WriteLine("いらっしゃいませ!"); 12 } 13 14 // ※ ここがプログラム実行時に最初に呼び出される。 15 static void Main(string[] args) 16 { 17 // Shop メソッドを呼び出す 18 Shop(); 19 } 20 } 21}

投稿2021/06/17 08:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

BizarreWanderer

2021/06/17 08:58

ありがとうございます! プログラムはちゃんと行われるけども表記されるのはmainメソッドだけでそこから呼び出されているだけという感じであってますか??
退会済みユーザー

退会済みユーザー

2021/06/17 09:13

> プログラムはちゃんと行われるけども表記されるのはmainメソッドだけでそこから呼び出されているだけという感じであってますか?? たぶん理解できていません。 「プログラムはちゃんと行われる」というの何をイメージしているのかわかりませんが、 アプリケーションは実行時に、Mainメソッドを呼び出し、そのMainメソッドから出たら、終了します。 仮にShopメソッド以外にメソッドを追加したとしても、Mainメソッド内や、 Mainメソッドで呼び出しているメソッドから呼び出さない限り実行されません。
guest

0

1回しか呼ばれてないからです。
プログラムは起動後にMain関数を実行する以外何もしません。

投稿2021/06/17 08:47

neconekocat

総合スコア443

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

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

BizarreWanderer

2021/06/17 08:52

なるほど!! static void 〚Main〛←この部分はMain以外の文字だと実行しても表示はされないという解釈であっていますでしょうか??
neconekocat

2021/06/17 08:57

表示されない云々ではなく、そもそもMain以外のメソッドを勝手に呼び出したりしません。 他の人も言っていますが、プログラムを上から順に実行するわけではないのです。
BizarreWanderer

2021/06/17 09:05

わかりました、mainメソッド以外のメソッドは呼び出されないんですね! すっきりしました!!
guest

0

普通に表示されますよ。ConsoleWindowが起動して直ぐに終了しているので、表示されていないと勘違いしていませんか?

下記のように書いてみてください。

class Program { static void Shop() { Console.WriteLine("いらっしゃいませ!"); } static void Main(string[] args) { Shop(); Console.WriteLine("何かキーを押してください。"); Console.ReadKey(); // キーを押すとConsoleWindowが終了する } }

投稿2021/06/17 08:29

nobutaka18

総合スコア4

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

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

BizarreWanderer

2021/06/17 08:33

すみません、かきかたが悪かったかもしれません static void Shop()で一度かかれているのと 下のstatic Void Main でもう一度呼び出されているので二回 「いらっしゃいませ!」の文字が表示されると思ったんですけど表記が一回しかなかったので疑問におもいました
guest

0

二回は表示されないのも当たり前です。

プログラムは言語によりますが、JavaやC#のようにmainメソッド, C言語等のように main関数がある言語の場合はそのエントリポイント( mainメソッドのこと ) が先に呼ばれます。

で、エントリポイント内に書かれている処理を上から順に処理していくだけです。

using System; namespace ConsoleApp1 { class Program { // Sample18 // 「いらっしゃいませ!」と表示するメソッドを定義 static void Shop() { Console.WriteLine("いらっしゃいませ!"); } static void Main(string[] args) { // Shop メソッドを呼び出す Shop(); } } }

であれば、まず Mainメソッドが探されます。

そして Mainメソッド内にもぐり処理します。

1. 『// Shopメソッドを呼び出す』はコメントなので無視 2. Shop() メソッドが呼ばれる 2.1. Shopメソッド内に潜る 2.1.1. 『いらっしゃいませ!』と表示する 2.2. Shopメソッドのブロックから抜ける 3. Mainメソッドのブロックから抜ける (終了)

となっています。

なので 『いらっしゃいませ!』は1回だけしか表示されません。

投稿2021/06/17 08:55

BeatStar

総合スコア4962

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

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

BizarreWanderer

2021/06/17 09:01

理解できました! ありがとうございます!
BeatStar

2021/06/17 09:09

ちなみに、MainメソッドとかでShopメソッドを二回呼び出せば、二回表示できます。 でもMainメソッドにある処理が行われるだけなので、今回は一回だけです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問