//ここから行の最後まではコンパイラが無視するのでメモ書きできる /*ここから コメント扱いされるので 終端まで何を書いても大丈夫 終端はこれ→*/ /**これは 上記のように範囲内がコメントになるが アスタリスクが2つだと、JDKの機能の一つ、javadocでコードの説明として表示される 一人でプログラミングする分にはおそらく使わない... 終端のアスタリスクは1つでOK、コメントはここまで→*/
public class Math0
{
public static void main(String[] args)
{
int a;
System.out.println(a);
}
}
public class Math1
{
public static void main(String[] args)
{
int a;
a = 10;
System.out.println(a);
}
}
public crass Math2
{
public static void main(String[] args)
{
int a = 10;
System.out.println(a);
}
}
public class Math3
{
public static void main(String[] args)
{
int a;
a = 5;
System.out.println(a);
a = 10;
System.out.println(a);
}
}
5 10
| 型 | 入れられる情報 | リテラル |
| byte | 1バイトの整数 | 整数 |
| short | 2バイトの整数 | |
| int | 4バイトの整数 | |
| long | 8バイトの整数 | 整数+L(l) |
| float | 浮動小数点(点以下7桁) | 小数+F(f) |
| double | 倍精度の浮動小数点(点以下16桁) | 小数 |
| boolean | 真偽値 | true false |
| char | 文字 | 引用符'(shift+7)で囲む |
| String | 文字列 | 二重引用符"(shift+2)で囲む |
public class Math4
{
public static void main(String[] args)
{
int a, b;
a = 1;
b = 10;
System.out.println(a);
System.out.println(b);
}
}
1 10
public class Math5
{
public static void main(String[] args)
{
int a = 1, b = 10;
System.out.println(a);
System.out.println(b);
}
}
public class Math6
{
public static void main(String[] args)
{
int a = 2 - 1, b = a + 9;//+は左右の数を足す、詳しくは後術
System.out.println(a);
System.out.println(b);
}
}
public class Math7
{
public static void main(String[] args)
{
int a = b, b = 10;//左から処理しているので、bがまだ宣言されてないのにbを使おうとしている
int c, d = 10//全部10にしてくれるわけでは無いので次の文でコンパイルエラー
System.out.println(c);
int e = 2;
int f = 1, e = f;//すでに宣言された変数eをまた宣言しようとしている
}
}
| 表記 | 効果 |
| + | (この演算子の)左にあるオペランドに、右のオペランドを足す |
| - | 左にあるオペランドから、右のオペランドを引く |
| * | 左にあるオペランドを、右のオペランドで掛ける |
| / | 左にあるオペランドを、右のオペランドで割る |
| % | 左にあるオペランドを、右のオペランドで割った余り(整数同士の計算専用) |
public class Math8{
public static void main(String[] args)
{
int a = 10 + 3;
int b = 10 - 3;
int c = 10 * 3;
int d = 10 / 3;
int e = 10 / 3;
String f = "文字列を" + "つなげる";
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}
}
13 7 30 3 1 文字列をつなげる
a = 1 - 2 + 6 / 2
a = 1 - 2 + 3
a = (1 - 2) + 3 ⇒ a = -1 + 3 a = (-1 + 3) ⇒ a = 2
a(int型の変数で10が入っている) = a + 10
a = 10 + 10
a = 20
a = b = 1
a = 1
100 + 900l + 1000 + 200.0f + 800.0 + "点" + 30 + 70
1000l + 1000 + 200.0f + 800.0 + "点" + 30 + 70
2000l + 200.0f + 800.0 + "点" + 30 + 70
3000.0 + "点" + 30 + 70
"3000.0点" + 30 + 70
"3000.0点30" + 70 "3000.0点3070"
3 / 2 + 3.5 3 / 2.0 + 3.5
100 + 900l + 1000 + 200.0f + 800.0 + "点" + (30 + 70)
3 - ((1 + 2 * 3) * (4 / 5.0 * 6))
3 - (7 * (4 / 5.0 * 6))
3 - (7 * 15.0)
3 - 105.0 -102.0
| 表記 | 効果 |
| = | 右のリテラルを左の変数に代入する (左の変数の中身を右のリテラルにする) |
| += | 右のリテラルと左の変数を足してその値を左の変数に代入する String型の場合、左の変数の最後尾に右のリテラルの内容をつなげて左の変数に代入する |
| -= | 右のリテラルと左の変数を引いてその値を左の変数に代入する |
| *= | 右のリテラルと左の変数を掛けてその値を左の変数に代入する |
| /= | 右のリテラルと左の変数を割ってその値を左の変数に代入する |
| %= | 右の整数のリテラルと左の整数の変数を割ってその余りを左の変数に代入する |
例) a = (int) 1.5
a(int型) = (int) 100 * 1.05
a = (int) (100 * 1.05)
public class Math9
{
public static void main(String[] args)
{
int a = 1;
a++;
System.out.println(a);
a--;
System.out.println(a);
}
}
2 1
| 表記 | 効果 |
| == | (右と左のリテラルが) 等しいときtrue、違うときはfalseに変化する |
| != | 違うときtrue、等しいときはfalseに変化する |
| > | (右より、左のリテラルが) 大きいときはtrue、等しいか小さいときはfalseに変化する |
| < | 小さいときはtrue、等しいか大きいときはfalseに変化する |
| >= | 大きいか等しいときはtrue、小さいときはfalseに変化する |
| <= | 小さいか等しいときはtrue、大きいときはfalseに変化する |
a(boolean型) = 1 + 2 == b
a = 3 == b
a = true
例)3.2 == 3は3.2 == 3.0として見られる
a.equals(b) ※a:比較されるString型のリテラル、変数 b:比較するString型のリテラル、変数
例) c(int型) + ""は可、(String)cはコンパイルエラーになるので不可 例) a(String型)とb(int型)を比べる場合、a.equals(b + "")
1 == 1 == true
true == 1 == 1
!a.equals(c) !b(boolean型変数) !b == true
!a(int型変数) == 1
!(a == 1)
例) a(boolean型変数) = true && 1 + 1 == 2 a = true && (1 + 1) == 2 ⇒a = true && 2 == 2 a = true && (2 == 2) ⇒a = true && true a = (true && true) a = true
例) true || true && false (true || true) && false ⇒ true && false (true && false) ⇒ false
型[] 変数名; 例)int[] array;
型 変数名[]; 例)int array[];
変数名 = new 型[要素の数]; 例)array = new int[10];
例)int array[]; array = new int[10];
型[] 変数名 = new 型[要素の数]; 例)int[] array = new int[10]; 型 変数名[] = new 型[要素の数]; 例)int array[] = new int[10];
変数名[要素の添え字] = 入れる値; 例)array[0] = 2;
例)a = 1 + 1;(aに2が入る) a[0] = 1 + 1;(aの中の配列の1つ目の要素に2が入る)
a=2、bの要素0=1、要素1=3の場合 例)a = a + 1;⇒a=3 b[0] = b[1] + 1;⇒b[0]=4 例)System.out.println(a);⇒2と表示される System.out.println(b[1]);⇒3と表示される
public class ArrayTest0
{
public static void main(String[] args){
int[] array = new int[3];
array[0] = 3;
array[1] = array[0] + 2
array[2] = array[1] + 1
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
}
}
3 5 6
public class ArrayTest1
{
public static void main(String[] args){
int[] array = new int[3];
int i = 0;
array[i] = 3;
i++;
array[i] = array[i-1] + 2;
i++;
array[i] = array[i-1] + 1;
i = 0;
System.out.println(array[i]);
i++;
System.out.println(array[i]);
i++;
System.out.println(array[i]);
}
}
public class ArrayTest2
{
public static void main(String[] args)
{
int[] array = {1, 2, 3, 4, 5};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
}
}
1 2 3 4 5
public class ArrayTest3
{
public static void main(String[] args)
{
int[] array = {1, 2, 3};
System.out.println(array[0] + " " + array[1] + " " + array [2]);//ここまでで止めれば1 2 3と画面に表示される
array = {4, 5, 6};//この方法で中身をまとめて変える事は不可能(コンパイルエラーになる)
System.out.println(array[0] + " " + array[1] + " " + array [2]);
}
}
public class ArrayTest4
{
public static void main(String[] args)
{
//1つ目の添え字はキャラのID、2つ目の添え字は0から体力、攻撃力、防御力
int[][] characterData = new int[4][3];
characterData[0][0] = 100;//一人目の体力
characterData[0][1] = 20;//一人目の攻撃力
characterData[0][2] = 10;//一人目の防御力
//int[4][3]はint[3]の配列が4つ並ぶ配列とも見れる
int[] character2Data = new int[3];//二人目のステータスを一次元配列として作る
character2Data[0] = 90;
character2Data[1] = 25;
character2Data[2] = 10;
characterData[1] = character2Data;//二人目のステータスを二次元配列に入れる
int[] character3Data = {120, 15, 5};//三人目のステータスを一次元配列として作る
characterData[2] = character3Data;//三人目のステータスを二次元配列に入れる
int[] character4Data = {80, 15, 15};//四人目のステータスを一次元配列として作る
characterData[3] = character4Data;//四人目のステータスを二次元配列に入れる
//これはできない模様
//characterData[3] = {80, 15, 15};//四人目のステータスを直接配列を作って入れる
int i = 0;
//一人目
System.out.println("キャラクター" + (i + 1) + " 体力:" + characterData[i][0] + " 攻撃力:" + characterData[i][1] + " 防御力:" + characterData[i][2]);
i++;//二人目
System.out.println("キャラクター" + (i + 1) + " 体力:" + characterData[i][0] + " 攻撃力:" + characterData[i][1] + " 防御力:" + characterData[i][2]);
i++;//三人目
System.out.println("キャラクター" + (i + 1) + " 体力:" + characterData[i][0] + " 攻撃力:" + characterData[i][1] + " 防御力:" + characterData[i][2]);
i++;//四人目
System.out.println("キャラクター" + (i + 1) + " 体力:" + characterData[i][0] + " 攻撃力:" + characterData[i][1] + " 防御力:" + characterData[i][2]);
}
}
キャラクター1 体力:100 攻撃力:20 防御力:10 キャラクター2 体力:90 攻撃力:25 防御力:10 キャラクター3 体力:120 攻撃力:15 防御力:5 キャラクター4 体力:80 攻撃力:15 防御力:15
public class ArrayTest5
{
public static void main(String[] args)
{
//両手の武器を定義、1つ目の添え字が左か右か、2つ目が攻撃力、射程、連射力
//改行など書き方は人それぞれ、メモ書きに例を書いておきます
int[][] newCharacter =
{
{10, 2, 3},//1次元の配列を","で区切る
{5, 2, 6}
};
System.out.println("新規キャラクター");
System.out.println("左手武器:攻撃力/" + newCharacter[0][0] + " 射程/" + newCharacter[0][1] + " 連射/" + newCharacter[0][2]);
System.out.println("右手武器:攻撃力/" + newCharacter[1][0] + " 射程/" + newCharacter[1][1] + " 連射/" + newCharacter[1][2]);
System.out.println("");//空行を入れる、\nでも良いけど...
//1つ目の添え字は何人目かで、後は前の配列の添え字を一つずらした感じで2つ目の添え字が左か右か、3つ目が攻撃力、射程、連射力
//ここはnew int[4][2][3]ってやっても良いが、一つずつ数字を代入するのは面倒なのでそのやり方は省略
int[][][] party =
{
//一人目、添え字は0
{
{4, 1, 10},
{7, 3, 4}
},//配列の配列も","で区切る
//二人目
{
{2, 5, 8},
{20, 5, 1}
},
//三人目
{
{5, 4, 5},
{6, 4, 4}
},
//四人目
{
{5, 1, 8},
{10, 1, 4}
}
};
int i = 0;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 1;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 2;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 3;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
System.out.println("");
//int[][][]はint[][]の配列としても見れる、例に漏れず二次元配列の初期化のように配列を直接作って入れる事は不可能
party[0] = newCharacter;
System.out.println("キャラクター1を新規キャラクターと交換しました");
i = 0;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 1;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 2;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 3;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
System.out.println("");
//int[][][]はint[]の入る二次元配列とも見れる
int[] newWeapon = {30, 3, 1};
party[0][1] = newWeapon;
party[1][1] = newWeapon;
party[2][1] = newWeapon;
party[3][1] = newWeapon;
System.out.println("全キャラクターの右手武器を同じものに交換しました");
i = 0;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 1;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 2;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
i = 3;
System.out.println("キャラクター" + (i + 1));
System.out.println("左手武器:攻撃力/" + party[i][0][0] + " 射程/" + party[i][0][1] + " 連射/" + party[i][0][2]);
System.out.println("右手武器:攻撃力/" + party[i][1][0] + " 射程/" + party[i][1][1] + " 連射/" + party[i][1][2]);
}
}
新規キャラクター 左手武器:攻撃力/10 射程/2 連射/3 右手武器:攻撃力/5 射程/2 連射/6 キャラクター1 左手武器:攻撃力/4 射程/1 連射/10 右手武器:攻撃力/7 射程/3 連射/4 キャラクター2 左手武器:攻撃力/2 射程/5 連射/8 右手武器:攻撃力/20 射程/5 連射/1 キャラクター3 左手武器:攻撃力/5 射程/4 連射/5 右手武器:攻撃力/6 射程/4 連射/4 キャラクター4 左手武器:攻撃力/5 射程/1 連射/8 右手武器:攻撃力/10 射程/1 連射/4 キャラクター1を新規キャラクターと交換しました キャラクター1 左手武器:攻撃力/10 射程/2 連射/3 右手武器:攻撃力/5 射程/2 連射/6 キャラクター2 左手武器:攻撃力/2 射程/5 連射/8 右手武器:攻撃力/20 射程/5 連射/1 キャラクター3 左手武器:攻撃力/5 射程/4 連射/5 右手武器:攻撃力/6 射程/4 連射/4 キャラクター4 左手武器:攻撃力/5 射程/1 連射/8 右手武器:攻撃力/10 射程/1 連射/4 全キャラクターの右手武器を同じものに交換しました キャラクター1 左手武器:攻撃力/10 射程/2 連射/3 右手武器:攻撃力/30 射程/3 連射/1 キャラクター2 左手武器:攻撃力/2 射程/5 連射/8 右手武器:攻撃力/30 射程/3 連射/1 キャラクター3 左手武器:攻撃力/5 射程/4 連射/5 右手武器:攻撃力/30 射程/3 連射/1 キャラクター4 左手武器:攻撃力/5 射程/1 連射/8 右手武器:攻撃力/30 射程/3 連射/1
public class ArrayTest6
{
public static void main(String[] args)
{
int[] a = new int[10];//要素が10個の配列を作成
System.out.println(a.length);//10と表示される
System.out.println("");//区切り
int[][][] b = new int[4][2][3];//多次元配列の場合
System.out.println(b.length);//一つ目の[]の大きさである4と表示される
System.out.println(b[0].length);//二つ目の[]の大きさである2と表示される、1つ目の添え字がどうだろうと同じとはいえb[].lengthだとコンパイルエラーになるので適当な数字を入れて置くこと
System.out.println(b[0][0].length);//三つ目の[]の大きさである3と表示される
System.out.println("bの要素の数の合計は" + (b.length * b[0].length * b[0][0].length));添え字が何通りあるか=要素が何個あるかを計算
}
}
10 4 2 3 bの要素の数の合計は24
public class ArrayTest7
{
public static void main(String[] args)
{
int a = 0;
int b = a;
b++;
System.out.println(a);
System.out.println(b);
int[] c = {0, 0};
int[] d = c;
d[0]++;
System.out.println(c[0]);
System.out.println(d[0]);
}
}
0 1 1 1
public class ArrayTest8
{
public static void main(String[] args)
{
int[] a = {0, 0};
System.out.println(a);
}
}
[I@5ca881b5
public class ArrayTest9
{
public static void main(String[] args)
{
int[] a = new int[2];
int[] b = {1, 2, 3};
a = b;
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
}
}
1 2 3
例:
int[][] a = {{0,1}, {2, 3, 4}};
int[] b = {5, 6, 7, 8};
a[0] = b;//これでaの中身は{{5, 6, 7, 8},{2, 3, 4}}に