20일차

김윤정·2024년 7월 16일

코딩

목록 보기
20/60
post-thumbnail

1.조건문의 3가지 종류를 나열하고 설명하시오.

  • if문
  • if~else if문: 조건이 충족되지 않았을 때 실행할 문장을 추가하고 싶을 때 else를 사용합니다.
  • if~else if~else문: if else if 조건문은 중복되지 않는 세 가지 이상의 조건을 구분할 때 사용합니다.

2.아래의 프로그램을 짜시오.(필수)

  • 국어:80 수학:80 영어:60
    점수와 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오

    	public static void main(String[] args) {
    			int kor = 90;
    			int math = 80;
    			int eng = 60;
    			double avg;
    
    			int total = kor + math + eng;
    			avg = (double) total / 3;
    
    		
    			System.out.println("국어:"+kor);
    			System.out.println("수학:"+math);
    			System.out.println("영어:"+eng);
    		
    			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("성적:" + "가입니다.");
    			}
    		
}

3. 90, 70 100 세 수중 max 값을 구하시오.

        int num1 = 90;
		int num2 = 70;
		int num3 = 100;

		int max;

		if ((num1 >= num2) && num1 >= num3) {
			max = num1;
		} else if ((num2 >= num1) && num2 >= num3) {
			max = num2;
		} else {
			max = num3;
            }
            System.out.println(max);

4. 위의 수중 중간값을 구하시오.

	public static void main(String[] args) {
		int num1 = 90;
		int num2 = 70;
		int num3 = 100;

		int mid;

		if ((num2 < num1 && num1 < num3) || (num3 < num1 && num1 < num2))
			System.out.println("중간값은 " + num1 + "입니다.");
		else if ((num1 < num2 && num2 < num3) || (num3 < num2 && num2 < num1))
			System.out.println("중간값은 " + num2 + "입니다.");
		else
			System.out.println("중간값은 " + num3 + "입니다.");

	

	}

5. "1초과 100미만인가?" 를 코딩 하면?

		int num=50;
		boolean result;
		result=(1<num)&&(num<100);
		System.out.println("1초과 100미만인가?"+result);
		
	}

6. 7이 "2의 배수 또는 3의 배수?" 인지를 확인하는 코딩을 완성하시오.?

public class test {
	public static void main(String[] args) {
		int num=7;
		boolean result;
		result=(num%2==0)&&(num%3==0);
		System.out.println(result);
		
	}

7. && 와 || 설명하시오.

&&는 and 개념이고 ||는 or 개념입니다.
조건이 2개일때 &&는 다 성립되어야하고 or은 둘중 한개만 맞아도 성립 가능합니다.

8. 아래의 프린트 결과를 예측해 보고, 코딩 후 결과를 확인 하시오.

class SCE {

public static void main(String[] args) {

int num1 = 0;

int num2 = 0;

boolean result;

result = ((num1 += 10) < 0) && ((num2 += 10) > 0);

System.out.println("result = " + result);

System.out.println("num1 = " + num1);

System.out.println("num2 = " + num2 + '\n'); // "

result=false가 나옵니다. num1+=10은 복합연산자로 num1은 10을 뜻합니다.10은 0보다 크므로 첫번째 조건에서 false 이기때문에 result는 false입니다. 첫번째 조건이 false 이므로 두번째 조건은 연산하지않기때문에 num2는 0입니다.

result = ((num1 += 10) > 0) || ((num2 += 10) > 0);

System.out.println("result = " + result);

System.out.println("num1 = " + num1);

System.out.println("num2 = " + num2);

}

}
||는 or개념으로 첫번째 조건인 num1(10)이 0보다 크므로 true입니다.
num1에 또 num1을 더하면 10+10=20이므로 num1은 최종적으로 20이 나옵니다. num2는 0이기때문에 0에
0을 더하면 0입니다.

9. 아래가 에러가 나는 이유를 설명하고, 수정 하시오.

short num1;

short num = -num;

	public static void main(String[] args) {
		short num1 = 3;

		short num2 = (short) (-num1);
		System.out.println(num2);
	}

형변환 하지 않으면 오류가 발생합니다.
-는 int이고 num1은 short입니다. 따라서 형변환 해줘야합니다.

10. 전위 증가 연산자와 후위 증가 연산자의 차이는?

  • 전위증가연산자(prefix): 변수 앞에 있어서 계산후 값이 출력됩니다.
  • 후위증가연산자(postfix): 변수 앞에 있어서 값이 출력된후 저장됩니다.

11. 아래의 쉬프트 연산자에 대하여 설명하시오.

>>: 피연산자의 비트열을 오른쪽으로 이동합니다.
이동에 따른 빈공간은 음수의 경우 1, 양수의 경우 0으로 채웁니다.
<<: 피연산자의 비트열을 왼쪽으로 이동합니다. 이동에 따른 빈공간은 0으로 채웁니다.

12. 아래의 출력값을 예측하시오.

class SCE {

public static void main(String[] args) {

int num1 = 0;

int num2 = 0;

boolean result;

num1 += 10;

num2 += 10;

result = (num1 < 0) && (num2 > 0);

System.out.println("result = " + result);

System.out.println("num1 = " + num1);

System.out.println("num2 = " + num2 + '\n'); //+ "\n"??

num1 += 10;

num2 += 10;

result = (num1 > 0) || (num2 > 0);

System.out.println("result = " + result);

System.out.println("num1 = " + num1);

System.out.println("num2 = " + num2);

}

}
출력값은
result = false
num1 = 10
num2 = 10

result = true
num1 = 20
num2 = 20
입니다.

  • num1이 10이기 때문에 result 첫번째 조건인 0보다 작다에서 false가 나옵니다.+= 복합연산자로 10씩 더해주면 num1, num2는 10이 나옵니다.
  • 두번째 result ||은 한개의 조건이 맞아도 true이기때문에 true로 나옵니다.

13. 아래의 출력값을 예측하시오.

class AddNum {

public static void main(String[] args) {

int result = 3 + 6;

System.out.println("3 + 6 = " + result);

result += 9;

System.out.println("3 + 6 + 9 = " + result);

result += 12;

System.out.println("3 + 6 + 9 + 12 = " + result);

}

}

출력값은
3 + 6 = 9
3 + 6 + 9 = 18
3 + 6 + 9 + 12 = 30
입니다.+=는 복합연산자로 result에 지정된 값을 더해주면 됩니다.

14.삼항 연산 90, 70 100 세 수중 max 값을 구하시오.

		int kor=90;
		int eng=100;
		int math=70;
		int max;
		
	
		max=(kor<=eng)?eng:kor;
		max=(max<=math)?math:max;
		
		System.out.println(max);
		

15.화폐매수를 구하시오.

=126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.
예) int 126500;
오만원 : 2장
만원: 2장
오천원짜리 :1장
천원짜리: 1
오백원짜리 1개
백원짜리 0개

0개의 댓글