논리 연산자

새로운 사실을 알았다.
논리 연산자가 || 처럼 두개일때와 | 한개일 때가 연산 방법이 달랐다.

||처럼 두개일때는 앞에서 결과가 나왔을 때 두번째 연산을 실행하지 않는다.
그런데 | 처럼 한개일때는 앞에서 결과가 나왔더라도 두번째 연산을 실행 후 결과를 낸다.

따라서 두개의 연산자를 붙여서 쓰는 방법이 더 효율적이다.

확인문제

연산자와 연산식에 대한 설명 중 틀린 것은?

  1. 연산자는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다.
  2. 비교 연산자와 논리 연산자의 산출 타입은 boolean(true/false)이다.
  3. 연산식은 하나 이상의 값을 산출할 수도 있다.
  4. 하나의 값이 올 수 있는 자리라면 연산식도 올 수 있다.

연산식은 하나의 값만 산출할 수 있다.

다음 코드를 실행했을 때 출력 결과는?

public class Exercise02{
	public static void main(String[] args){
		int x = 10;
		int y = 20;
		int z = (++x) + (y--);
		System.out.println(z);
	}
}

//Console
31

다음 코드를 실행했을 때 출력 결과는?

public class Exercise03{
	public static void main(String[] args){
		int score = 85;
		String result = (!(score>90))? "가":"나";
		System.out.println(result);
	}
}

//Console

(#1) 과 (#2) 에 들어갈 알맞은 코드는?

534자루의 연필을 30명의 학생들에게 똑같은 개수로 나눠 줄 때
학생당 몇개를 가질 수 있고, 최종적으로 몇 개가 남는지 구하는 코드.

public class Exercise04{
	public static void main(String[] args){
		int pencils = 534;
		int students = 30;

		//학생 한 명이 가지는 연필 수
		int pencilsPerStudent = (#1);
		System.out.println(pencilsPerStudent);

		//남은 연필 수 
		int pencilsLeft = (#2);
		System.out.println(pencilsLeft);
	}
}
  • #1: pencils/students
  • #2: pencils%students

(#1)에 알맞은 코드를 작성하세요

십의 자리 이하를 버리는 코드.
변수 value의 값이 356이라면 300이 나올 수 있도록 작성 (산술연산자만 사용).

public class Exercise05{
	public static void main(String[] args){
		int value = 356;
		System.out.println(#1);
	}
}
  • #1: (value/100)*100

(#1)에 알맞은 코드를 작성하세요

사다리꼴의 넓이를 구하는 코드. 정확히 소수자릿수가 나올 수 있도록 작성

public class Exercise06{
	public static void main(String[] args){
		int lengthTop = 5;
		int lengthBottom = 10;
		int height = 7;
		double area = (#1);
		System.out.println(area);
	}
}
  • #1: (double)(lengthTop + lengthBottom) * height / 2

다음 코드의 결과는?

public class Exercise07{
	public static void main(String[] args){
		int x = 10;
		int y = 5;

		System.out.println((x>7)&&(y<=5));
		System.out.println((x%3 == 2)||(y%2 != 1));
	}
}

//Console
true
false

(#1)에 들어갈 코드를 작성하세요

%연산을 수행한 결과값에 10을 더하는 코드이다.
NaN 값을 검사해서 올바른 결과가 출력될 수 있도록 NaN을 검사하는 코드를 작성

public class Exercise08{
	public static void main(String[] args){
		double x = 5.0;
		double y = 0.0;

		double z = x % y;

		if(#1){
			System.out.println("0.0으로 나눌 수 없습니다.");
		} else{
			double result = z + 10;
			System.out.println("결과: " + result);
		}
	}
}
  • #1: Double.isNaN(z)