ラベル 出力 の投稿を表示しています。 すべての投稿を表示
ラベル 出力 の投稿を表示しています。 すべての投稿を表示

2018年2月17日土曜日

Hello Worldの後の最初の一歩 1行出力と1行入力

モットーは習うより慣れろ 言い古されたセリフだけど


新しい言語の学習は、とにかく参考書に書いてあるプログラムをコンピューターに入力して、動かしてみることだと僕は思っています。とにかく動かしてみるんです。その言語に触れて、ひたすら打ち込んで動かしてみるんです。

ある程度慣れたら、そこでプログラムリストの意味の理解に努めれば、より理解が深まるのではないかと思います。

最初は全くわからない状態でも、何か高級言語を勉強した経験があれば、しばらくやっていると何となく分かってきます。

というわけで、僕も最初はひたすら教材のリストを入力しては動かす、ということの繰り返しでした。

Hello Worldの後の最初の一歩


最初のエントリーで、Hello Worldと出力するコードをC#で書いたらどうなるかを書きました。これはC#で1行出力をする最も基本的なプログラムです。

次は、1行入力の機能を付け加えてみます。

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("\nWhat is your name? ");
            var name = Console.ReadLine();
            var date = DateTime.Now;
            Console.WriteLine($"\nHello, {name}, on {date:d} at {date:t}!");
            Console.Write("\nPress any key to exit...");
            Console.ReadKey(true);

        }
    }
}
(引用:Visual Studio 2017 での .NET Core を使用した C# Hello World アプリケーションの構築/マイクロソフト)

これを実行すると、

What is your name? 
gustav   <-- キーボードから入力

Hello, gustav, on 2018/02/16 at 20:18!

Press any key to exit...

という動作になります。

この中で出てくるConsole.WriteLine()と、Console.ReadLine()が今回のテーマです。

Console.WriteLine()


標準出力対してテキストを1行出力します。プログラムリストの

Console.WriteLIne( "\nWhat is your name? " );

では、カッコの中にある"\nWhat is your name? "を出力しています。文字列を1行出力した後に、自動的に改行を入れる、という働きもあります。

 Console.WriteLine($"\nHello, {name}, on {date:d} at {date:t}!");

の行については、$(ドル記号)は、書式指定子の一つで、上記の例だと、{name}、{date:d}、{date:t}を該当する変数の中身で置き換えて出力する、というものだそうです。

こちらに詳しい事が書いてありますので、興味があれば参照下さい。また、このメソッドの詳しい説明は、MSDN(Microsoft Developer Network)のこのページにあります。

Console.ReadLine()


標準入力からテキストを1行入力します。戻り値の型はString型です。なお、このメソッドで読み込める最大の文字数は254文字です。それを上回る大きな文字数の行を読み込む必要があるときは、OpenStandardInput(Int32)メソッドで1行バッファの大きさを変更することが出来ます。

このメソッドの詳細な説明はMSDNのこのページにあります。

今回出て来たConsole.WriteLine()とConsole.ReadLine()は、標準入出力を司るConsoleというクラスの中のメソッドとなります。MSDNのこのページにConsoleクラスの詳しい説明があります。

行入力と行出力は入出力の基本ですね。今日はこの辺で。