22.04.19


演算子


しじえんざん
+(プラス記号)、-(マイナス記号)、x(乗算記号)、/(シェアのみ出力)、%(残り)
package ch03;

public class Ch03Ex01 {

	public static void main(String[] args) {
		int firstNum = 123, secondNum = 4;
		System.out.println(firstNum + " + " + secondNum + " = " + (firstNum + secondNum));
		System.out.println(firstNum + " - " + secondNum + " = " + (firstNum - secondNum));
		System.out.println(firstNum + " * " + secondNum + " = " + (firstNum * secondNum));
		System.out.println(firstNum + " / " + secondNum + " = " + (firstNum / secondNum));
		System.out.println(firstNum + " % " + secondNum + " = " + (firstNum % secondNum));
	}
}
出力結果
123 + 4 = 127
123 - 4 = 119
123 * 4 = 492
123/4 = 30
123 % 4 = 3
リレーショナル演算子(比較演算子)>true,false出力
<,>,<=,>=,==(同じ),!=(異なる)
package ch03;

public class Ch03Ex02 {
	public static void main(String[] args) {
		System.out.println("10 > 100 = " + (10 > 100));
		System.out.println("10 < 100 = " + (10 < 100));
		System.out.println("10 >= 100 = " + (10 >= 100));
		System.out.println("10 <= 100 = " + (10 <= 100));
		System.out.println("10 == 100 = " + (10 == 100));
		System.out.println("10 != 100 = " + (10 != 100));
	}
}
出力結果
10 > 100 = false
10 < 100 = true
10 >= 100 = false
10 <= 100 = true
10 == 100 = false
10 != 100 = true
論理演算子>true,false出力
&(および、いずれも真の場合真)|(または、そのうちの1つが真の場合真の場合)
論理演算中のShort Circuit Logic
&(and):前(左)の値が偽の場合、後(右)の値が偽(false)>であるにかかわらず、X>記号-&&が必要です.
|(or):前(左)の値が既に真である場合、後(右)の値が真である(true)>にかかわらず、X>記号-|が必要となる
package ch03;

public class Ch03Ex03 {
	public static void main(String[] args) {
		//and(&) Example
		System.out.println("& Example");
		System.out.println("true & true = " + (true & true));
		System.out.println("true & false = " + (true & false));
		System.out.println("false & true = " + (false & true));
		System.out.println("false & false = " + (false & false));
		
		//or(|) Example
		System.out.println("| Example");
		System.out.println("true | true = " + (true | true));
		System.out.println("true | false = " + (true | false));
		System.out.println("false | true = " + (false | true));
		System.out.println("false | false = " + (false | false));
		
		//&& Example
		System.out.println("&& Example");
		System.out.println("1 > 10 & 10 < 100 = " + ((1 > 10) & (10 < 100)));
		//1 > 10 검사(false), 10 < 100 검사(true) => 결과 false
		System.out.println("1 > 10 && 10 < 100 = " + ((1 > 10) && (10 < 100)));
		//1 > 10 검사(false) => 결과 false (Short Circuit Logic)
		
		//|| Example
		System.out.println("|| Example");
		System.out.println("1 < 10 | 10 > 100 = " + ((1 < 10) | (10 > 100)));
		//1 < 10 검사(true), 10 > 100 검사(false) => 결과 true
		System.out.println("1 < 10 || 10 > 100 = " + ((1 < 10) || (10 > 100)));
		//1 < 10 검사(true) = > 결과 true (Short Circuit Logic)
	}
}
出力結果
& Example
true & true = true
true & false = false
false & true = false
false & false = false
| Example
true | true = true
true | false = true
false | true = true
false | false = false
&& Example
1 > 10 & 10 < 100 = false
1 > 10 && 10 < 100 = false
|| Example
1 < 10 | 10 > 100 = true
1 < 10 || 10 > 100 = true
増減演算子
独自の値(+)またはダウングレード(--)の役割を上げる
増分演算子の先頭(先頭)-増分して残りの操作を実行します.
増減演算子の接尾辞(後)-残りの操作を実行し、値を増減します.
package ch03;

public class Ch03Ex04 {
	public static void main(String[] args) {
		int iVar1 = 8;
		iVar1++;
		System.out.println("iVar1++ 1회 : " + iVar1);
		
		int iVar2 = 8;
		iVar2--;
		System.out.println("iVar2-- 1회 : " + iVar2);
		
		int iVar3 = 8;
		int result1 = ++iVar3 * 3;
		System.out.println("result1 = ++iVar3 * 3 = " + result1);
		//8을 ++한 후 * 3 > 9 * 3 = 27
		
		int iVar4 = 8;
		int result2 = iVar4++ * 3;
		System.out.println("result2 = iVar4++ * 3 = " + result2);
		System.out.println("result2 계산 이후 iVar4 : " + iVar4);
		//8 * 3 = 24 > 8++
	}
}
出力結果
iValr 1+1回:9
iVar 2-第1話:7
result1 =++iVar3 3 = 27
result2 = iVar4++ 3 = 24
計算結果2後iVar 4:9
さんこうえんざんし
?, : 構成
(第1項、質問-真偽を必ず見分ける文)?(第2項,真値):(第3項,偽値)
package ch03;

public class Ch03Ex06 {
	public static void main(String[] args) {
		System.out.println(1 > 10 ? true : false);
		System.out.println(10 < 100 ? true : false);
		
		int iVar1 = 5;
		System.out.println(iVar1 >= 5 ? "올림" : "내림");
		iVar1 = 4;
		System.out.println(iVar1 >= 5 ? "올림" : "내림");
	}
}
出力結果
false
true
上へ
ドロップダウン
非演算子
! : 否定論理、NOTの意味(★)
シンボル演算子(+、-):正と負を表します.
~:1の報酬、-3-2-1「基点」0 1 2基点における各数の対応数(-3<>2,-2<>1,-1<>0)
◇2の報酬:1の報酬+1,0を基準とし、数字ごとに対応する数(1<>-1,2<>-2)
package ch03;

public class Ch03Ex07 {
	public static void main(String[] args) {
		// ! Example
		System.out.println("! Example");
		System.out.println(!true);
		System.out.println(!false);
		System.out.println(!!true);	//이중 부정 = 참
		
		// +, 1 Example
		System.out.println("+, - Example");
		System.out.println(10);		//양수
		System.out.println(-10);	//음수
		System.out.println(-(-10));	//음수 * 음수 = 양수
		
		// ~ Example
		System.out.println("~ Example");
		System.out.println(~0);	//-1
		System.out.println(~1);	//-2
	}
}
出力結果
! Example
false
true
true
+, - Example
10
-10
10
~ Example
-1
-2
ビット演算
&:AND、ホント&ホント.偽り
|-OR,虚偽|虚偽の場合のみ虚偽とする.残りは本当に.
^-XOR、左右の値が違うのは本当で、同じ偽です
 비트 연산 예
 64 32 16  8  4  2  1
  0  1  0  1  0  1  0 : 42
  0  1  1  1  1  0  0 : 60
 --------------------
  0  1  0  1  0  0  0 : 40(AND 연산)
  0  1  1  1  1  1  0 : 62(OR 연산)
  0  0  1  0  1  1  0 : 22(XOR 연산)
package ch03;

public class Ch03Ex08 {
	public static void main(String[] args) {
		System.out.println(42 & 60);
		System.out.println(42 | 60);
		System.out.println(42 ^ 60);
	}
}
出力結果
40
62
22
シフト演算子
ビット演算子
使用理由:メモリ使用率が低い.はんどうたい
right shift(>>):新しい場所は0
符号なしright shift(>>>>):新しい位置を記号ビットで埋め込む
left shift(<):新しい位置は0
 shift 연산 예
 부호 64 32 16  8  4  2  1
   0  0  0  0  0  1  0  0 : 4
 -------------------------
   0  0  0  0  0  0  0  1 : 4 >> 2
   0  0  0  1  0  0  0  0 : 4 << 2
   
 부호 64 32 16  8  4  2  1
   1  0  0  0  0  1  0  0 : -4
 -------------------------
   1  0  0  0  0  0  0  1 : -4 >> 2
   1  0  0  1  0  0  0  0 : -4 << 2
  
代入演算子
=:代入演算子
+=:変数=変数+A
-=:変数=変数-A
*=:変数=変数x A
//=:変数=変数/A
%=:変数=変数&A
このほか、論理演算子(&、|、^)、shift演算子(>、>>>、<)も提供されます.
package ch03;

public class Ch03Ex10 {
	public static void main(String[] args) {
		int iVar = 100;
		iVar += 7;		//iVar = iVar + 7
		System.out.println("iVar += 7 : " + iVar);
		iVar -= 7;		//iVar = iVar - 7
		System.out.println("iVar -= 7 : " + iVar);
		iVar *= 7;		//iVar = iVar * 7
		System.out.println("iVar *= 7 : " + iVar);
		iVar /= 7;		//iVar = iVar / 7
		System.out.println("iVar /= 7 : " + iVar);
		iVar %= 7;		//iVar = iVar % 7
		System.out.println("iVar %= 7 : " + iVar);
		iVar &= 7;		//iVar = iVar & 7
		System.out.println("iVar &= 7 : " + iVar);
		iVar |= 7;		//iVar = iVar | 7
		System.out.println("iVar |= 7 : " + iVar);
		iVar ^= 7;		//iVar = iVar ^ 7
		System.out.println("iVar ^= 7 : " + iVar);		
	}
}
出力結果
iVar += 7 : 107
iVar -= 7 : 100
iVar *= 7 : 700
iVar/= 7 : 100
iVar %= 7 : 2
iVar &= 7 : 2
iVar |= 7 : 7
iVar ^= 7 : 0

Scanner


JDKが提供する入力方式(java.util.Scanner)
キーボード入力後、入力バッファ中間記憶>スキャンプログラムを使用して、中間記憶値を読み込みます.
scanner.nextInt():整数をインポート
scanner.nextDouble():実数のインポート
scanner.next():単語を入力(スペース後の入力保存X)
scanner.nextLine():文をインポートする
◇nextLine()の場合、enter値を識別して格納することもできます.
package ch03;

import java.util.Scanner;

public class Ch03Ex12 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("Input Integer : ");
		int iVar = sc.nextInt();
		System.out.println("Input result : " + iVar);
		
		System.out.print("Input Double : ");
		double dVar = sc.nextDouble();
		System.out.println("Input result : " + dVar);
		
		
		System.out.print("Input Word : ");
		String str1 = sc.next();	//공백 이후 입력은 저장 X
		System.out.println("Input result : " + str1);
		
		sc.nextLine();		//엔터값 지움
		System.out.print("Input Sentence : ");
		String str2 = sc.nextLine();
		System.out.println("Input result : " + str2);
		
		sc.close();		//입력 후 반드시 close
	}
}
出力結果
Input Integer : 26
Input result : 26
Input Double : 1513.516
Input result : 1513.516
Input Word : Word
Input result : Word
Input Sentence : Hello World
Input result : Hello World

コントロールゲート


ぶんかつ
ブランチステートメント
if, if ~ else, if ~ else if ~ else, switch ~ case
条件付きスプリッタの構文
if(条件文){実行コード}:条件文が真(true)の場合、コードが実行されます.偽(false)の場合は実行されません.
if(条件文){実行コード1}else{実行コード2}:条件文が真(true)の場合、コード1が実行されます.falseの場合、実行コード2が実行されます.
package ch03;

import java.util.Scanner;

public class Ch03Ex16 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int fNum = (int) (Math.random() * 10);
		System.out.println("First Number : " + fNum);
		System.out.println("두 번째 수는 첫 번째 수 보다 _____");
		System.out.println("1. 낮다  2. 높다");
		System.out.print("입력 : ");
		int uNum = sc.nextInt();
		
		int sNum = (int) (Math.random() * 10);
		System.out.println("Second Number : " + sNum);
		
		if (uNum == 1) {
			if (fNum > sNum) {
				System.out.println("승리");
			} else {
				System.out.println("패배");
			}
		} else {
			if (fNum > sNum) {
				System.out.println("패배");
			} else {
				System.out.println("승리");
			}
		}	
	}
}
出力結果
First Number : 7
2番目の数字は1番目の数字より
1.低い.高い「たかい」
入力:1
Second Number : 2
勝利する.
▶if~else if~else,swith~caseは他の記事で補足されています
複文
for, while
break(割り込み)、continue(スキップ)
▶その他で補足