--Sample7--
using System;
class Num
{
static void Main()
{
int[,] a = {
{1,2,0},
{4,5,6},
{7,8,9}
};
a[0, 2] = 3;
Console.WriteLine(a[0, 0] + a[0, 1] + a[0, 2]);
Console.WriteLine(a[1, 0] + a[1, 1] + a[1, 2]);
Console.WriteLine(a[2, 0] + a[2, 1] + a[2, 2]);
}
}
--Result7--
6
15
24
画像でやっていたんですが、やっぱりなんとなく面倒だったので。。
インデントをつける方法はわかったんですが、色までは残せませんでした。。
というわけで、文字のフォントは別のことに生かしたいと思います。
余談、class Numberとやると、エラーがでました。
Numと書き換えたら大丈夫でしたので、Numberはいわゆる「予約語」ってやつなんすかね
予約語っていうのは、機械が考えてる意味が決まっているので人間が独自の意味で使ってはいけない文字・・・という風に認識しています。
さて本題。重要事項は今日は2つ。
①多次元配列の宣言(初期化):int[,] = { ~ }(2次元の場合)
今回のメインですね。
コードに「軸」を書き込んだ下の図を見ていただくとわかりやすいかと。

変数名[y座標,x座標]という書き方で、値の位置を指し示す、というわけです。
つまり、この多次元配列(二次元配列)を宣言した瞬間にこの座標平面がぽーんと生成されるイメージですね。
②多次元配列の値参照:変数名[y座標,x座標]([]は値の位置)
今回のa[0,2] = 3を和訳すると「変数aのy座標0,x座標2の位置に3を代入する」
ということになります。
①における座標をイメージできれば簡単に理解できます。
和訳すると、
・配列変数aを
120
456
789
と定義する
・位置(y,x)=(0,2)の変数の箱a[0,2]に3を代入する
・a[0,0]+a[0,1]+a[0,2]の計算結果を表示、改行
・a[1,0]+a[1,1]+a[1,2]の計算結果を表示、改行
・a[2,0]+a[2,1]+a[2,2]の計算結果を表示、改行。
さて、、、実は今回のResultを
123
456
789
という風に表したかったんですが・・・
というわけでいろいろ試行錯誤してみた結果、こうすればできました!!
--Sample8--
using System;
class Number
{
static void Main()
{
int[,] a = {
{1,2,0},
{4,5,6},
{7,8,9}
};
a[0, 2] = 3;
Console.WriteLine(a[0, 0] + "" + a[0, 1] + "" + a[0, 2]);
Console.WriteLine(a[1, 0] + "" + a[1, 1] + "" + a[1, 2]);
Console.WriteLine(a[2, 0] + "" + a[2, 1] + "" + a[2, 2]);
}
}
--Result8--
123
456
789
なんでこういう結論に至れたかというと、「値の型が異なるものの場合はくっつける」という推測をしたからです。
つまり、隣り合う値が整数どうしの足し算の場合は計算してしまうんで、「文字列」を間に挟むという発想です。
文字列「」(何もない)を挟むことでうまくいくんじゃないかな~であたりでした^ ^
和訳すると、
・配列変数aを
120
456
789
と定義する
・位置(y,x)=(0,2)の変数の箱a[0,2]に3を代入する
・a[0,0]とa[0,1]とa[0,2]をくっつけて表示、改行
・a[1,0]とa[1,1]とa[1,2]をくっつけて表示、改行
・a[2,0]とa[2,1]とa[2,2]をくっつけて表示、改行。
今日は以上です。



