초급
문제1. 산술 연산자에서 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산자의 역할을 간단히 설명하세요.
int a = 2, int b = 3 일때
덧셈 연산자(+)는 a + b 로 사용할 수 있고, 결과는 두 값의 합을 출력한다.
뺄셈 연산자(-) 는 a - b로 사용할 수 있고, 결과는 두 값의 차를 출력한다.
곱셈 연산자(*) 는 a * b로 사용할 수 있고, 결과는 두 값의 곱을 출력한다.
나눗셈 연산자(/) 는 a / b로 사용할 수 있고, 결과는 두 값을 나눈 몫을 출력한다.
나머지 연산자(%)는 a % b로 사용할 수 있고, 결과는 두 값을 나눈 나머지를 출력한다.
문제2. 3 + 4 * 2의 연산 결과는 얼마인가요? 이 문제를 통해 연산자 우선순위의 개념을 설명하세요.
곱셈연산자가 덧셈연산자보다 우선순위이기때문에 3 + ( 4*2) 로 먼저 계산되어 11로 결과값이 나타난다.
문제3. 사용자로부터 두 개의 정수를 입력받아 두 숫자를 더한 결과를 출력하는 코드를 작성하세요.
(힌트: Scanner 이용)
public class ScannerEx {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("두개의 정수를 입력하세요 : ");
int num1 = input.nextInt();
int num2 = input.nextInt();
int sum = num1 + num2;
System.out.println("두 숫자의 합은 "+ sum +"입니다.");
}
}
중급
문제1. 회로 단락 평가란 무엇이며, &&와 || 연산자에서 어떻게 작동하는지 설명하세요.
두항을 모두 실행하지 않더라고 결과 값을 알수 있는 경우, 나머지 항은 실행되지 않는 것을 단락 회로 평가라고 한다.
논리 곱 연산(&&) - A&&B가 있을때 A와 B가 둘다 참이어야 참이 되므로 앞으 A가 거짓이면 B는 실행되지않고 결과값이 거짓으로 나온다.
논리 합 연산(||) - A||B가 있을때 A와 B중 하나만 참이여도 참이 되므로 A가 참일경우 B는 실행되지않고 결과값이 참으로 나온다.
문제2. 다음 코드에서 x가 0일 때 y++가 실행되지 않도록 회로 단락 평가를 활용하여 조건문을 변경하세요.
int x = 0;
int y = 5;
if (x != 0 || y++ > 2) {
System.out.println("조건이 참입니다.");
}
System.out.println("y의 값: " + y);
>> 변경
public class Evaluation1 {
public static void main(String[] args) {
int x = 0;
int y = 5;
if (x == 0 || y++ > 2) {
System.out.println("조건이 참입니다.");
}
System.out.println("y의 값: " + y);
}
}
문제3. &&와 || 연산자를 사용하여, score가 70 이상이고 age가 18 이상인 경우에만 "합격"을 출력하는 코드를 작성하세요. age가 18 미만이면 score가 70 이상이라도 "합격"이 출력되지 않도록 회로 단락 평가를 활용하세요.
public class Evaluation2 {
public static void main(String[] args) {
int score = 80;
int age = 16;
if(age>=18 && score>=70) {
System.out.println("합격");
}
}
}
고급
문제1. 아래 코드의 실행 결과를 예측하고, 회로 단락 평가의 작동 원리를 설명하세요.
int x = 10;
int y = 20;
boolean result = (x < 5) && (y++ > 15);
System.out.println("x: " + x + ", y: " + y + ", result: " + result);
result=false로 예측할수있다.
x가 10일때, x <5는 false(거짓)이다.
&&연산자는 조건 둘다 참이어야 참이므로 첫번째 항이 false면 두번째 조건은 실행하지 않는다.
문제2. 두 개의 숫자를 입력받아, 첫 번째 숫자가 양수이고 두 번째 숫자가 음수일 때만 두 수의 곱을 출력하는 코드를 작성하세요. 첫 번째 숫자가 양수가 아닐 경우 두 번째 숫자를 평가하지 않도록 회로 단락 평가를 사용하세요. (힌트: Scanner 객체 이용)
public class Evaluation3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("두 정수를 입력하세요: ");
int num1 = input.nextInt();
int num2 = input.nextInt();
int result = num1*num2;
if(num1>0 && num2<0){
System.out.println(result);
}
}
}
문제3. 주어진 정수 배열에서, 짝수와 양수인 수의 합을 계산하는 함수를 작성하세요. 단, 첫 번째로 만나는 홀수가 발견되면 이후의 모든 연산을 중단하고 해당 시점까지의 합을 반환하세요. 회로 단락 평가를 활용하여 불필요한 계산을 방지하도록 구현하세요.
public class Evaluation4 {
public static void main(String[] args) {
int[] arr = {4, 6, 2, 1};
int sum=0;
for(int i=0; i<arr.length; i++){
if(arr[i]%2==0 && arr[i]>0){
System.out.println(arr[i]);
sum += arr[i];
}else{
break;
}
}
System.out.println(sum);
}
}
'스터디 > JAVA' 카테고리의 다른 글
섹션7. 스코프, 형변환 (3) | 2024.11.04 |
---|---|
섹션6. 반복문 (4) | 2024.11.03 |
섹션5. 조건문 미션 (1) | 2024.11.02 |
섹션3. 변수 미션 (1) | 2024.10.30 |
섹션2. Hello World 미션 (1) | 2024.10.29 |