티스토리 뷰
1. 아래가 에러가 나는 이유를 설명하고, 수정 하시오.
short num = 1;
short num = -num;
☞jvm은 32비트 메모리로 int(32바이트) 이하의 데이터 타입으로 연산을 진행하고 강제변환(?)을 하지 않으면 자동으로 int이하의 데이터 타입을 int로 변환하여 연산 후 다시 short로 변환하므로 그 과정에서 오류가 발생하는 것이다. (maybe)
2. 전위 증가 연산자와 후위 증가 연산자의 차이는?
☞전위 증가 연산자와 후위 증가 연산자 모두, 데이터 값에 1을 더하거나 빼는 것이다.
전위 증가 연산자는 (++num) 또는 (--num)으로 표현 되며 System.out.println(++num); 형태에서 전위 증가 연산자를 사용하면 데이터값에서 1이 더해진 상태로 산출이 된다.
int num1 = 2;
System.out.println(++num1);
결과값: 3
후위 증가 연산자는 (num++)또는 (num--)으로 표현되며 System.out.println(num++); 시 num값이 도출된 뒤에 연산을 진행한다. 따라서 결과값에는 연산과정 이전의 값이 도출된다.
연산값을 보고 싶다면 System.out.println(num);을 한 번 더 적으면 볼 수 있다.
int num1 = 2;
System.out.println(num++);
System.out.println(num);
결과값: 2
3
3. 아래의 비트 연산자 4가지를 설명하시오.
& | ^ ~
☞해당 비트 연산자 4가지는 이진수 연산이라고도 부른다.
1) &은 AND로 읽히며 &&와는 다른 의미이다. 데이터값의 이진수 표현 상태에서 두 숫자 모두 1일 경우에만 1이 산출된다. 그 외에는 0으로 표시된다.
1 1 → 1
1 0 → 0
0 1 → 0
0 0 → 0
2) |은 OR로 읽히며 ||와는 다른 의미이다. 데이터 값의 이진수 표현 상태에서 두 숫자 중 하나라도 1을 내포하면 1이 도출된다. 오로지 데이터 값 모두 0일 경우에만 0으로 표시된다.
1 1 → 1
1 0 → 1
0 1 → 1
0 0 → 0
3) ^ 은 XOR라고 부르며 현장에서는 삿갓이라고 부른다. 두 이진수가 다를 경우 1이라고 표시되고 같을 경우 0으로 표시된다.
1 1 → 0
1 0 → 1
0 1 → 1
0 0 → 0
4) ~ 은 모든 비트를 반전시키는 것을 의미한다.
1 → 0
0 → 1
4. 아래의 쉬프트 연산자에 대하여 설명하시오.
<<
>>
☞ 쉬프트 연산자는 뾰족한 방향으로 데이터 값이 연산되는 것을 의미한다.
<<일 경우 우측 숫자가 n이라고 가정할 경우 좌측 값의 n승으로 연산이 된다.
반대로 >>일 경우 n만큼 나눠진 결과이다. ◀◀
5. 아래의 출력값을 예측하시오.
class AssignSteResult {
public static void main(String[] args) {
int num1 = 10, num2 = 20, num3 = 30;
num1 = num2 = num3;
/*
= 연산자는 결합 방향이 오른쪽에서 왼쪽으로 진행된다.
-> 따라서 위의 문장은 다음과 같다.
num1 = (num2 = num3);
*/
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
}
}
☞ 세 값 모두 30
6.아래의 출력값을 예측하시오.
class AddNum {
public static void main(String[] args) {
int result = 3 + 6;
System.out.println("3 + 6 = " + result);
}
}
☞9예상. 3+6은 9이므로.
result += 9;
System.out.println("3 + 6 + 9 = " + result);
☞18예상. result값이 9였는데 9에 9를 다시 더하므로.
result += 12;
System.out.println("3 + 6 + 9 + 12 = " + result);
☞30 예상. result 값이 18이었늗네 그 값에 12를 더하므로.
8. 조건문의 3가지 종류를 나열하고 설명하시오.
1) if문: if 조건문은 해당값이 참(true)인지 거짓(false)인지 판단하고 참 값을 도출하는 것이다.
if(n1<n2) {
System.out.println("n1 > n2 is true");
}
2) if ~ else문: if 조건문 이후 참이 아닌 값에 대해 구하고 싶을 때 else를 붙인다.
if(true or false) {
System.out.println(조건 true시 실행되는 영역);
} else {
System.out.println(조건 false시 실행되는 영역);
}
3) if ~ else if ~ else 문: if 조건문 이후 참이 아닌 값에 대해 다시 참 거짓을 판별하고 싶을 때 else if를 추가하고 가장 마지막으로 참거짓이 판단되는 구문은 else로 적는다. else if절은 중간에 얼마든지 추가 가능.
if(true or false) {
System.out.println(조건 true시 실행되는 영역);
}else if {
System.out.println(조건 false시 실행되는 영역);
}else {
System.out.println(조건 false시 실행되는 영역);
}
9. 아래의 프로그램을 짜시오.
국어:80 수학:80 영어:60
총점과 평균을 출력하고,
평균에 따른 수우미양가를 출력 하시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
public class GradeTest {
public static void main(String[] args) {
int kor = 80;
int math = 80;
int eng = 60;
int total = kor + math + eng;
System.out.println("총점: " + total);
double avg = total / 3.0;
System.out.println("평균: " + avg);
if (avg >= 90) {
System.out.println("수");
} else if (avg >= 80) {
System.out.println("우");
} else if (avg >= 70) {
System.out.println("미");
} else if (avg >= 60) {
System.out.println("양");
} else {
System.out.println("가");
}
}
}
|
cs |

10. int 변수 3개 선언
임의 값 집어 넣음
그중 3개의 값중 최대값을 출력
90 100 60
출력:
최대값은 100 입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class programming2 {
public static void main(String[] args) {
int num1 = 60;
int num2 = 90;
int num3 = 100;
if ((num1 > num2) && (num1 > num3)) {
System.out.println("최대값은 " + num1 + "입니다");
} else if ((num2 > num1) && (num2 > num3)) {
System.out.println("최대값은 " + num2 + "입니다");
} else {
System.out.println("최대값은 " + num3 + "입니다");
}
}
}
|
cs |

위에 if문 간단하게 줄여보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class programming2 {
public static void main(String[] args) {
int r1 = 60;
int r2 = 90;
int r3 = 100;
if (r1 > r2) {
System.out.println("최대값은 60이다");
} else if (r2 > r3) {
System.out.println("최대값은 90이다");
} else {
System.out.println("최대값은 100이다");
}
}
}
|
cs |

삼항연산자 이용
A = B ? C : D ;
B 조건, C는 true일때, D는 false일때
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class programming2 {
public static void main(String[] args) {
int w1 = 60;
int w2 = 90;
int w3 = 100;
int Max;
Max = ((w3 > w2) && (w3 > w1)) ? w3 : w2;
System.out.println(Max);
}
}
|
cs |

☞☞//과제 10번 해설. 세 수 중 큰 수 찾기
int a = 60;
int b = 90;
int c = 100;
int max; //최대값 설정
if (a>b) {
if(a>c) { //if 문 안에 if 있는건 그다지 좋지 않음
max=a;
}else {
max = c;
}
}else {
if(b>c) {
max=b;
}else {
max=c;
}
}
System.out.println(max);
System.out.println("=============");
//방법 2. 내가 한 방법. 아주 잘했다네? 히히
if((a>b)&&(a>c)) {
max = a;
}else if((b>a)&&b>c) {
max=b;
}else {
max=c;
}
System.out.println(max);
System.out.println("=============");
//방법 3. 좀 더 줄여보기. 선생님 방법.
max = a; //a를 max값으로 지정해놓고 b와 비교
if(b>max) {
max=b;
}
if (c>max) {
max = c;
}
System.out.println(max);
System.out.println("=============");
//삼항연산자 이용
//a와 b를 일단 비교를 해. a가 더 크면 참
max = (a>b) ? (a>c?a:c) : (b>c? b:c);
System.out.println(max);
11. 아래의 프로그램을 짜시오.
int 변수 선언 후 임의로 값을 넣음.
해당 값이 짝수 이면 "짝수 입니다" 출력
해당 값이 홀수 이면 "홀수 입니다" 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class programming2 {
public static void main(String[] args) {
int num = 38476285;
if (num % 2 == 0) {
System.out.println("짝수 입니다");
} else {
System.out.println("홀수 입니다");
}
}
}
|
cs |

'면접준비 > KOSMO 허쌤 숙제' 카테고리의 다른 글
화폐, 구구단, 별찍기 (21/10/08) (0) | 2021.10.27 |
---|---|
switch문, 절대값, while, break, continue, 구구단, 배수 (21/10/07) (0) | 2021.10.27 |
리터럴, 형변환, 이스케이프 시퀀스(21/10/05) (0) | 2021.10.27 |
아스키코드, 부동소수법, 상수, 리터럴(21/10/04) (0) | 2021.10.27 |
변수, 자료형, JDK, JVM(21/10/01) (0) | 2021.10.27 |