Language/JAVA

[Java] ์‡ผํŠธ ์„œํ‚ท (Short-Circuit)

๊ต ๋ฏผ 2024. 9. 27. 23:09

๐Ÿ“์ •์˜

์‡ผํŠธ์„œํ‚ท(Short-Circuit) : ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์—์„œ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ์ตœ์ ํ™” ๊ธฐ๋ฒ•

 

๐Ÿ“์žฅ์ 

  • ์„ฑ๋Šฅ ํ–ฅ์ƒ : ๋ถˆํ•„์š”ํ•œ ์กฐ๊ฑด ํ‰๊ฐ€๋ฅผ ์ƒ๋žตํ•˜์—ฌ, ์‹คํ–‰ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค
  • ์ž ์žฌ์  ์˜ค๋ฅ˜ ๋ฐฉ์ง€ : ์ธ๋ฑ์Šค ์ฐธ์กฐ ์ „, ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๋…ผ๋ฆฌ์‹์—์„œ ์œ ์šฉํ•˜๋‹ค.

 

๐Ÿ“„ ์˜ˆ์‹œ ์ฝ”๋“œ

public class CompLogicDemo {
	public static void main(String[] args) {
		int x = 0, y = 1;
		System.out.println((x < 1) || (y-- < 1));
		System.out.println("x = " + x + ", y = " + y);
		//์ถœ๋ ฅ : x=0, y=1
		//์‡ผํŠธ ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ. x<1์ด ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์˜ ์—ฐ์‚ฐ ์ˆ˜ํ–‰์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. → y๊ฐ’ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋จ

		x = 0;
		y = 1;
		// |๊ฐ€ 1๊ฐœ์ผ ๊ฒฝ์šฐ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ๋น„ํŠธ ์—ฐ์‚ฐ์ž → ์‡ผํŠธ์„œํ‚ทx → 2์ง„์ˆ˜ ๋ณ€ํ™˜ํ•ด๋ด์•ผํ•จ
		System.out.println((x < 1) | (y-- < 1));
		System.out.println("x = " + x + ", y = " + y);
		//์ถœ๋ ฅ : x=0, y=0
	}
}


// |๊ณผ ||์˜ ์ฐจ์ด์  : ๋‘˜ ๋‹ค or์—ฐ์‚ฐ์ž์ด์ง€๋งŒ, |์˜ ๊ฒฝ์šฐ ๋น„ํŠธ๋ผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด๋ณด๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.

 

๐Ÿ“์ฃผ์˜์‚ฌํ•ญ

๋ชจ๋“  ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ ํ•ฉํ•˜์ง€ ์•Š๊ธฐ์—, ์•ž์„  ์กฐ๊ฑด ์ˆœ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ํ‰๊ฐ€๊ฐ€ ์ค‘์ง€๋œ๋‹ค๋Š” ๊ฒƒ์„ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.