モットーは習うより慣れろ 言い古されたセリフだけど
新しい言語の学習は、とにかく参考書に書いてあるプログラムをコンピューターに入力して、動かしてみることだと僕は思っています。とにかく動かしてみるんです。その言語に触れて、ひたすら打ち込んで動かしてみるんです。
ある程度慣れたら、そこでプログラムリストの意味の理解に努めれば、より理解が深まるのではないかと思います。
最初は全くわからない状態でも、何か高級言語を勉強した経験があれば、しばらくやっていると何となく分かってきます。
というわけで、僕も最初はひたすら教材のリストを入力しては動かす、ということの繰り返しでした。
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クラスの詳しい説明があります。
行入力と行出力は入出力の基本ですね。今日はこの辺で。