p.27 WriteLineメソッドとWriteメソッド
・WriteLineメソッドは()内の式を処理して結果をコンソールに出力(表示)するとともに、末尾に改行コードを付加する
・改行が不要であれば、代わりにWriteメソッドを用いると良い
・改行のみを行うには()内を空にして「Console.WriteLine();」とすればよい
p.27 test03.cs
//p.27 test03.cs
using System; //System名前空間の利用を宣言
class Test03 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
Console.Write("あ"); //文字列を表示(改行しない)
Console.Write("い"); //文字列を表示(改行しない)
Console.Write("う"); //文字列を表示(改行しない)
Console.Write("え"); //文字列を表示(改行しない)
Console.Write("お"); //文字列を表示(改行しない)
Console.WriteLine(); //改行のみ
} //メソッド定義の終了
} //クラス定義の終了
アレンジ演習 p.27 text03.cs
・「あいうえお(改行)」を「あい(改行)うえお(改行)」にしよう
作成例①
//アレンジ演習p.27 test03.cs
using System; //System名前空間の利用を宣言
class Test03 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
Console.Write("あ"); //文字列を表示(改行しない)
Console.Write("い"); //文字列を表示(改行しない)
Console.WriteLine(); //【追加】改行のみ
Console.Write("う"); //文字列を表示(改行しない)
Console.Write("え"); //文字列を表示(改行しない)
Console.Write("お"); //文字列を表示(改行しない)
Console.WriteLine(); //改行のみ
} //メソッド定義の終了
} //クラス定義の終了
作成例②
//アレンジ演習p.27 test03.cs
using System; //System名前空間の利用を宣言
class Test03 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
Console.Write("あ"); //文字列を表示(改行しない)
Console.WriteLine("い"); //【変更】文字列を表示(改行)
Console.Write("う"); //文字列を表示(改行しない)
Console.Write("え"); //文字列を表示(改行しない)
Console.Write("お"); //文字列を表示(改行しない)
Console.WriteLine(); //改行のみ
} //メソッド定義の終了
} //クラス定義の終了
p.28 フォーマット指定子を使った変数の表示
・文字列と変数を連結する手法はミスしやすく、連結結果が分かりづらい
・そこで、文字列に埋め込み位置を指定して、後に変数を指定して、その値を順に埋め込んでもらうのがフォーマット指定子
・フォーマット指定子は文字列の中に「{0}」「{1}」「{2}」…と順に埋め込み位置を指定するもの(※必ず0からの連番)
例: Console.WriteLine("{0}倍速い!", 3); //「3倍速い!」と表示
例: int n = 3; Console.WriteLine("{0}倍速い!", n); //「3倍速い!」と表示
・フォーマット指定子を複数指定する場合、変数や式をカンマつなぎで記述する
例: int a = 1, b = 2; Console.WriteLine("{0} + {1}", a, b); //「1 + 2」と表示
例: int a = 1, b = 2; Console.WriteLine("{0} + {1} = {2}", a, b, a + b); //「1 + 2 = 3」と表示
・同じ番号のフォーマット指定子を複数記述でき、同じ値を再利用できる
例: int n = 3; Console.WriteLine("{0}倍速いので{0}倍強い!", n); //「3倍速いので3倍強い!」と表示
p.28 text04.cs 解説
・「*」は積算演算子で、左右に数値があると、掛け算した結果を返す
例: int x = 10, y; y = x * 3; //xに3を掛けた結果をyに代入
・なお、算数と同様で、積算演算子「*」は加算、減算より優先される
例: int x = 10, y; y = 10 + x * 3; //xに3を掛けた結果を10に加算してyに代入 ※掛け算優先
p.28 text04.cs
//p.28 text04.cs
using System; //System名前空間の利用を宣言
class Text04 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
int x = 10;
Console.WriteLine("x = {0}", x); //「x = 10」を表示
Console.WriteLine("x = {0}, xの10倍は{1}です", x, x * 10);
Console.WriteLine("{0}は{1}ですが,{2}は{1}ではありません",
"猫", "哺乳類", "トカゲ");
} //メソッド定義の終了
} //クラス定義の終了
アレンジ演習 p.28 text04.cs
・int型の変数hpを追加し、30で初期化する
・文字列"HP"と、変数hpを用いて、「現在のHPは30で、HPを回復すると倍の60になる」と表示しよう
作成例
//アレンジ演習 p.28 text04.cs
using System; //System名前空間の利用を宣言
class Text04 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
int x = 10;
Console.WriteLine("x = {0}", x); //「x = 10」を表示
Console.WriteLine("x = {0}, xの10倍は{1}です", x, x * 10);
Console.WriteLine("{0}は{1}ですが,{2}は{1}ではありません",
"猫", "哺乳類", "トカゲ");
int hp = 30; //【以下追加】
Console.WriteLine("現在の{0}は{1}で、{0}を回復すると倍の{2}になる",
"HP", hp, hp * 2);
} //メソッド定義の終了
} //クラス定義の終了
p.29 桁数の指定
・フォーマット指定子に最小表示桁数を指定できる
・書式:{番号, 桁数}
・この桁数は「少なくともこの桁数で」という意味でスペースの確保になり、値の桁数がこれを超える場合、指定は無視される
例: Console.WriteLine("{0, 5}", 89); //「 89」となる(8の前に3桁空く)
例: Console.WriteLine("x = {0, 5}", 89); //「x = 89」となる
例: Console.WriteLine("{0, 5}", 123456); //「123456」となる(5桁という指定は無視される)
・桁数の前に「-」をつけると、左揃えになって、値の右側に空白が付く
例: Console.WriteLine("{0, -5}", 89); //「89 」となる(9の後に3桁空く)
p.30 text05.cs
//p.30 text05.cs
using System; //System名前空間の利用を宣言
class Text05 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
int x = 10, y = 123456789;
Console.WriteLine("1234567890123456789012345678990"); //目盛りを表示
Console.WriteLine("{0, 10}", "abc"); //" abc"(前に空き7個)
Console.WriteLine("{0, 5}", "def"); //" def"(前に空き2個)
Console.WriteLine("{0, 0}", "ghi"); //"ghi"(桁数指定は無視)
Console.WriteLine("{0, 10}{1, 10}", "あ", "い"); //" あ い"
Console.WriteLine("{0, -10}{1, -10}", "あ", "い"); //"あ い "
Console.WriteLine("x = {0, 5}, y = {1, 3}", x, y); //"x = 10, y = 123456789"
} //メソッド定義の終了
} //クラス定義の終了
アレンジ演習 p.30 text05.cs
・最後のWriteLineの後で、xの値を100、yの値を1に変更して、再度、同じ書式で表示しよう
・それから、xの値を1000、yの値を10に変更して、再度、同じ書式で表示しよう
・また、xの値を10000、yの値を100に変更して、再度、同じ書式で表示しよう
作成例
//アレンジ演習p.30 text05.cs
using System; //System名前空間の利用を宣言
class Text05 //クラスの定義
{ //クラス定義の開始
public static void Main() //開始時に動作するメソッドMain
{ //メソッド定義の開始
int x = 10, y = 123456789;
Console.WriteLine("1234567890123456789012345678990"); //目盛りを表示
Console.WriteLine("{0, 10}", "abc"); //" abc"(前に空き7個)
Console.WriteLine("{0, 5}", "def"); //" def"(前に空き2個)
Console.WriteLine("{0, 0}", "ghi"); //"ghi"(桁数指定は無視)
Console.WriteLine("{0, 10}{1, 10}", "あ", "い"); //" あ い"
Console.WriteLine("{0, -10}{1, -10}", "あ", "い"); //"あ い "
Console.WriteLine("x = {0, 5}, y = {1, 3}", x, y); //"x = 10, y = 123456789"
x = 100; y = 1; //【以下追加】
Console.WriteLine("x = {0, 5}, y = {1, 3}", x, y); //"x = 100, y = 1"
x = 1000; y = 10;
Console.WriteLine("x = {0, 5}, y = {1, 3}", x, y); //"x = 1000, y = 10"
x = 10000; y = 100;
Console.WriteLine("x = {0, 5}, y = {1, 3}", x, y); //"x = 10000, y = 100"
} //メソッド定義の終了
} //クラス定義の終了
提出課題:アレンジ演習 p.30 text05.cs 改良
・アレンジ演習で追加した部分を掛け算を用いて下記のように改良しよう
・最後のWriteLineの後で、xの値を100、yの値を1に変更して、再度、同じ書式で表示しよう
・xの値の10倍、yの値の10倍を、再度、同じ書式で表示しよう
・xの値の100倍、yの値の100倍を、再度、同じ書式で表示しよう