๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Backend/Java

[Java]์—ฐ์‚ฐ์ž(๋‹จํ•ญ ์—ฐ์‚ฐ์ž / ์ดํ•ญ ์—ฐ์‚ฐ์ž / ์‚ผํ•ญ ์—ฐ์‚ฐ์ž)

by sukii 2023. 11. 25.
๋ฐ˜์‘ํ˜•

๐Ÿง์—ฐ์‚ฐ์ž๋ž€?

 

x  +  y

 

์œ„์— x + y ๋ผ๋Š” ์—ฐ์‚ฐ์‹์ด ์žˆ๋‹ค. 

์—ฌ๊ธฐ์„œ ์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์‹œ๋‚˜ ๊ธฐํ˜ธ๋กœ + ๋ฅผ ๋งํ•œ๋‹ค.

์—ฐ์‚ฐ๋˜๋Š” ๋ฐ์ดํ„ฐ์ธ x ์™€ y๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•œ๋‹ค.

 

์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ, ์—ฐ์‚ฐ ์‹œ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ฆฌ๋˜์–ด ์žˆ์Œ.

*ํ˜ผ๊ณต์ž ๊ต์žฌ ์ฐธ์กฐ

์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ ๋ฐฉํ–ฅ ์šฐ์„  ์ˆœ์œ„
์ฆ๊ฐ(++), ๋ถ€ํ˜ธ(+, -), ๋…ผ๋ฆฌ(!) ๋†’์Œ


โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ
โˆฃ


๋‚ฎ์Œ
์‚ฐ์ˆ (*, /, %)
์‚ฐ์ˆ (+ , - )
๋น„๊ต( <, >, <=, >=, instanceof)
๋น„๊ต(==, !=)
๋…ผ๋ฆฌ(&)
๋…ผ๋ฆฌ(^)
๋…ผ๋ฆฌ( ¦ )
๋…ผ๋ฆฌ(&&)
๋…ผ๋ฆฌ( ¦ ¦ )
์กฐ๊ฑด(?:)
๋Œ€์ž…(=, +=, -=, *=, /=, %=)

 

 

์œ„์— ๋‚˜์˜จ ์—ฐ์‚ฐ์ž๋“ค์„ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋‹จํ•ญ, ์ดํ•ญ, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿง๋‹จํ•ญ ์—ฐ์‚ฐ์ž

 ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 1๊ฐœ์ด๋ฉฐ, ๋ถ€ํ˜ธ ์—ฐ์‚ฐ์ž์™€ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ ๋ถ€์ • ์—ฐ์‚ฐ์ž(!)๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹น๋œ๋‹ค.

 

๐Ÿ–ฅ๏ธ๋‹จํ•ญ์—ฐ์‚ฐ์ž ์˜ˆ์ œ 

package basic;

//์—ฐ์‚ฐ์ž(Operator) : ๊ณ„์‚ฐ์„ ๋ชฉ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ธฐํ˜ธ ๋˜๋Š” ํ‚ค์›Œ๋“œ
// => ํ”ผ์—ฐ์‚ฐ์ž : ์—ฐ์‚ฐ์ž์— ์˜ํ•ด ๊ณ„์‚ฐ๋˜๋Š” ๊ฐ’์„ ์˜๋ฏธ
// => ๋‹จํ•ญ์—ฐ์‚ฐ์ž(ํ”ผ์—ฐ์‚ฐ์ž : 1๊ฐœ), ์ดํ•ญ์—ฐ์‚ฐ์ž(ํ”ผ์—ฐ์‚ฐ์ž : 2๊ฐœ), ์‚ผํ•ญ์—ฐ์‚ฐ์ž(ํ”ผ์—ฐ์‚ฐ์ž : 3๊ฐœ)

public class OperatorApp {
	public static void main(String[] args) {
		//์ตœ์šฐ์„  ์—ฐ์‚ฐ์ž : ๋ฌด์กฐ๊ฑด ๊ฐ€์žฅ ๋จผ์ € ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ๋˜๋Š” ์—ฐ์‚ฐ์ž
		// => () : ์šฐ์„  ์ฒ˜๋ฆฌ ์—ฐ์‚ฐ์ž, []: ๋ฐฐ์—ด ์—ฐ์‚ฐ์ž, ์—ฐ์‚ฐ์ž : ๊ฐ์ฒด ์—ฐ์‚ฐ์ž
		System.out.println("10 + 20 * 3 = "+(10+20*3));
		System.out.println("10 + 20 * 3 = "+((10+20)*3));
		System.out.println("==================================================");
		//๋‹จํ•ญ ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐฏ์ˆ˜๊ฐ€ 1๊ฐœ์ธ ์—ฐ์‚ฐ์ž
		// => + : ์–‘์ˆ˜ํ™” ์—ฐ์‚ฐ์ž - ํ”ผ์—ฐ์‚ฐ์ž์— +1์„ ๊ณฑํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => - : ์Œ์ˆ˜ํ™” ์—ฐ์‚ฐ์ž(2์˜ ๋ณด์ˆ˜ ์—ฐ์‚ฐ์ž) - ํ”ผ์—ฐ์‚ฐ์ž์— -1์„ ๊ณฑํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => ~ : Bit Not ์—ฐ์‚ฐ์ž(1์˜ ๋ณด์ˆ˜ ์—ฐ์‚ฐ์ž) - ํ”ผ์—ฐ์‚ฐ์ž(์ •์ˆ˜๊ฐ’)๋กœ ํ‘œํ˜„๋œ Bit ๋‹จ์œ„์˜ ๊ฐ’์„ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™”ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => ! : Not ์—ฐ์‚ฐ์ž -  false ์™€ true ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => ++ : 1 ์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž - ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => -- : 1 ๊ฐ์†Œ ์—ฐ์‚ฐ์ž - ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 1 ๊ฐ์†Œํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => (์ž๋ฃŒํ˜•) : ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž - ํ”ผ์—ฐ์‚ฐ์ž์˜ ์ž๋ฃŒํ˜•์„ ์ผ์‹œ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => new : ๊ฐ์ฒด ์ƒ์„ฑ ์—ฐ์‚ฐ์ž - ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
	   
		int a1=10;
		System.out.println("a1 = "+a1);
		System.out.println("a1 = "+(-a1));
		System.out.println("==================================================");
		System.out.println("20 > 10 = "+(20>10));
		System.out.println("!(20 > 10) = "+!(20>10));
		System.out.println("==================================================");
		int a2=10, a3=10;
		System.out.println("a2 = "+a2+", a3 = "+a3);
		
		//++a2;
		//--a3;
		//์œ„์น˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
		a2++;
		a3--;
		
		System.out.println("a2 = "+a2+", a3 = "+a3);
		System.out.println("==================================================");
		int a4=10, a5=10;
		System.out.println("a4 = "+a4+", a5 = "+a5);
		
		int a6=++a4;
		int a7=a5++;
		System.out.println("a4 = "+a4+", a5 = "+a5);
		System.out.println("a6 = "+a6+", a7 = "+a7);
		System.out.println("==================================================");
	}
}

 

 

๐Ÿง์ดํ•ญ ์—ฐ์‚ฐ์ž

 ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 2๊ฐœ์ด๋ฉฐ, ๋‹จํ•ญ์—ฐ์‚ฐ์ž(๋ถ€ํ˜ธ&์ฆ๊ฐ&๋…ผ๋ฆฌ๋ถ€์ •)์™€ ์‚ผํ•ญ์—ฐ์‚ฐ์ž(์กฐ๊ฑด?:)์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋‘๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹น๋œ๋‹ค.

 

๐Ÿ–ฅ๏ธ์ดํ•ญ์—ฐ์‚ฐ์ž ์˜ˆ์ œ 

package basic;

public class OperatorApp {
	public static void main(String[] args) {
		//์ดํ•ญ ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐฏ์ˆ˜๊ฐ€ 2๊ฐœ์ธ ์—ฐ์‚ฐ์ž
		// => ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž, ์ด๋™ ์—ฐ์‚ฐ์ž, ๋น„๊ต ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ๋Œ€์ž… ์—ฐ์‚ฐ์ž
		//์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : *, /, %, +, -
		int b1=20, b2=10;
		System.out.println(b1+"*"+b2+" = "+(b1*b2));
		System.out.println(b1+"/"+b2+" = "+(b1/b2));
		System.out.println(b1+"%"+b2+" = "+(b1%b2));
		System.out.println(b1+"+"+b2+" = "+(b1+b2));
		System.out.println(b1+"-"+b2+" = "+(b1-b2));
		System.out.println("==================================================");
		// ์ด๋™ ์—ฐ์‚ฐ์ž : ์ •์ˆ˜๊ฐ’์„ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ Bit ์ˆ˜๋งŒํผ ์ด๋™ํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => <<(์™ผ์ชฝ ์ด๋™ ์—ฐ์‚ฐ์ž), >>(์˜ค๋ฅธ์ชฝ ์ด๋™ ์—ฐ์‚ฐ์ž), >>>(์˜ค๋ฅธ์ชฝ ์ด๋™ ์—ฐ์‚ฐ์ž)
		//50(10) : 4Byte - 00000000 00000000 00000000 00110010
		//50 << 3 : 00000000 00000000 00000001 10010000 - 400(10)
		//50 >> 3 : 00000000 00000000 00000000 00000110 - 6(10)
		//-50(10) : 4Byte - 11111111 11111111 11111111 11001110
		//-50 >> 3 : - 11111111 11111111 11111111 11111001
		//-50 >>> 3 : - 00011111 11111111 11111111 11111001
		
		//๋น„๊ต(๊ด€๊ณ„) ์—ฐ์‚ฐ์ž : ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ false ๋˜๋Š” true ์ค‘ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์ž
		// => >, <, >=, <=, ==, !=, instanceof : ๊ฐ์ฒด ๋น„๊ต ์—ฐ์‚ฐ์ž
		System.out.println("20 > 10 = "+(20>10));
		System.out.println("20 < 10 = "+(20<10));
		System.out.println("20 == 10 = "+(20==10));
		System.out.println("20 != 10 = "+(20!=10));
		System.out.println("==================================================");
		//๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : Bit ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ์ผ๋ฐ˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
        //๊ฒฐ๊ณผ๊ฐ’์€ true / false๋กœ ๋ฐ˜ํ™˜๋จ
        
		// => Bit ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ์ •์ˆ˜๊ฐ’์„ Bit ๋‹จ์œ„๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž - &(๋…ผ๋ฆฌ๊ณฑ), ^(๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ), |(๋…ผ๋ฆฌํ•ฉ)
		/*
		  00110110	   00110110			00110110
		& 11011100	 ^ 11011100		  | 11011100
		  00010100	   11101010			11111110
		*/
        
		// => ์ผ๋ฐ˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : ๋‘ ๊ฐœ์˜ ๋น„๊ต ์—ฐ์‚ฐ์‹์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž
		int c=20;
		System.out.println("c = "+c);
		
		//๋ณ€์ˆ˜>์ž‘์œผ๊ฐ’ && ๋ณ€์ˆ˜<ํฐ๊ฐ’ : ์ž‘์€๊ฐ’~ํฐ๊ฐ’ ๋ฒ”์œ„์˜ ๊ฐ’์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์‹
		System.out.println("c >= 10 && c <= 30 = "+(c >= 10 && c <= 30));
		System.out.println("c < 10 || c > 30 = "+(c < 10 || c > 30));
		System.out.println("==================================================");
		//๋Œ€์ž… ์—ฐ์‚ฐ์ž : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž(๋ณ€์ˆ˜)์— ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž
		// => ๋ฌด์กฐ๊ฑด ๋งˆ์ง€๋ง‰์— ์‹คํ–‰๋˜๋Š” ์—ฐ์‚ฐ์ž
		// => ์ˆœ์ˆ˜ ๋Œ€์ž… ์—ฐ์‚ฐ์ž : ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž(=)
		// => ์—ฐ์‚ฐ ๋Œ€์ž… ์—ฐ์‚ฐ์ž : ๋ณ€์ˆ˜๊ฐ’์„ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž (*=. /=, %=. +=, -=,    <<=, >>=, >>>=, &=, ^=, |=)
		int e=10;
		System.out.println("e = "+e);
		
		e*=20;// => e=e*20 
        //e์— 10์ด ๋Œ€์ž…๋˜์–ด ์žˆ์œผ๋‹ˆ, 10*20์„ํ•ด์„œ 200์ด๋ผ๋Š” ๊ฒฐ๊ณผ ์ถœ๋ ฅ
		System.out.println("e = "+e);
	}
}

 

๐Ÿง์‚ผํ•ญ ์—ฐ์‚ฐ์ž

 ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 3๊ฐœ์ด๋ฉฐ, ์กฐ๊ฑด ์—ฐ์‚ฐ์ž(?:) ํ•˜๋‚˜๋งŒ ์—ฌ๊ธฐ์— ํ•ด๋‹น๋œ๋‹ค.

 

๐Ÿ–ฅ๏ธ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์˜ˆ์ œ 

package basic;

//์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹œํ—˜์— ์ข…์ข… ๋‚˜์˜ค๊ธฐ๋„ ํ•œ๋‹ค๊ณ  ํ•จ. ์•”๊ธฐํ•ด๋‘๋ฉด ์ข‹์„๋“ฏ! โ˜…
public class OperatorApp {
	public static void main(String[] args) {
		//์‚ผํ•ญ ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐฏ์ˆ˜๊ฐ€ 3๊ฐœ์ธ ์—ฐ์‚ฐ์ž
		//ํ˜•์‹) ์กฐ๊ฑด์‹ ? ์ฐธ๊ฐ’ : ๊ฑฐ์ง“๊ฐ’
		// => ์กฐ๊ฑด์‹ : false ๋˜๋Š” true ์ค‘ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ฐ์‚ฐ์‹
		// => ์กฐ๊ฑด์‹์ด [true]์ธ ๊ฒฝ์šฐ ์ฐธ๊ฐ’์„ ์ œ๊ณตํ•˜๊ณ  [false]์ธ ๊ฒฝ์šฐ ๊ฑฐ์ง“๊ฐ’์„ ์ œ๊ณต 
		int d1=10, d2=20;
		System.out.println("ํฐ๊ฐ’ = "+(d1 > d2 ? d1 : d2));
		System.out.println("==================================================");
		//int d3=10;
		int d3=11;
		//[X % Y == 0] ์—ฐ์‚ฐ์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์„ 0๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์€ ๊ฒฝ์šฐ X๋Š” Y์˜ ๋ฐฐ์ˆ˜๋กœ ํ‘œํ˜„
		System.out.println(d3+" = "+(d3 % 2 == 0 ? "์ง์ˆ˜" : "ํ™€์ˆ˜"));
		System.out.println("==================================================");
	}
}
๋ฐ˜์‘ํ˜•