Jun's Blog

[Java] 조건문, 반복문 (예제 풀이 및 해답) 본문

Java

[Java] 조건문, 반복문 (예제 풀이 및 해답)

Fizzyelf 2020. 9. 18. 19:48

ex1) 다음 문장들을 조건식으로 표현하라

 

(1) int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식

	int x = 15;
	if((10< x)&&(x <20)) {
		System.out.println(x);
	}
	
	-> 20 < x <10
	-> ((20 < x) && (x <10))

 

 

(2) char형 변수 ch가 공백이고 탭이 아닐 때 true인 조건식

	char ch = 'v';
   	if((ch=='') && (ch!='\t')){
		System.out.println(ch);
   	}
	
	-> ch는 공백	그리고  ch는 탭이 아닐때
	-> ch=='' 	and  ch!= '\t'
	->(ch=='') 	&& 	(ch!='\t')

 

 

(3) char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식

	char ch = 'x';
	if(ch == 'x') || (ch == 'X'){
		System.out.println(ch);
	}
	
	-> ch == 'x' 또는 ch == 'X'

 

 

(4) char형 변수 ch가 숫자('0' ~ '9')일 때 true인 조건식

	char ch = '2';
	if((ch >= '0') && (ch <= '9')) {
		System.out.println(ch);
	}
	
	-> '0' <= ch <= '9'
	-> '0'<=ch && ch <= '9'
	-> ch는 '0'과 '9'사이에 포함되어야 하기 때문에

 

 

(5) char형 변수 ch가 영문자(대문자 또는 소문자)일 때, true인 조건식 boolean형 변수 powerOn이 false일 때, true인 조건식

	boolean powerOn = false;
	if(!powerOn){
		System.out.println(powerOn);
	}
	
	-> powerOn 변수가 false이고 조건식에서 !powerOn이 되어야지
	-> 밑에 실행문이 실행이 된다.

 

 

(6) 문자열 참조변수 str이 "yes"일 때 true인 조건식

	String str = "yes";
   	if("yes".equals(str)){
      	System.out.println(str);
   	}

 

ex2) 다음의 for문을 while문으로 변경하시오.

 

    //정답
    
    int dan = 2
    while(dan<10){
    int gob = 1;
        while(gob<10){
            System.out.println(dan + " * " + gob + " = " + dan*gob);
            gob++;
            }
        dan++;
    } 

 

풀이

 


ex3) 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하시오

 

    for (int num1 = 1; num1 <7; num1++){
        for(int num =1; num <7; num++){
            if (num1+num==6){
                System.out.println("("+num1 + "," + num + ")");
            }
        }	
    }
    System.out.println();

풀이

 


ex5) 방적식 2x+4y = 10의 모든 해를 구하시오.

      단, x와 y는 정수이고 각각의 범위는 0<=x<=10, 0<=y<=10이다.

    for(int x = 0; x < 11; x++){
        for(int y = 0; y <11; y++) {
            if(2*x+4*y==10){
                System.out.println("x:" + x + "  y:" + y);
            }
        }
    }
    System.out.println();

출력 결과 및 풀이


ex6) 사용자로부터 두개의 정수(시작,끝)를 입력받아 시작(포함)해서 끝(포함)까지의 곱을 출력하는 프로그램을 작성하시오.

    Scanner sc = new Scanner(System.in);
    System.out.println("첫 번째 숫자를 입력하세요");
    int input = sc.nextInt();
    System.out.println("두 번째 숫자를 입력하세요");
    int input1 = sc.nextInt();

    int sum2 = 1;
    if (input < input1) {
        for (int num = input; num < input1+1; num++) {
            sum2 *= num;
        }
    } else if (input1 < input) {
        for (int num = input1; num < input+1; num++) {
            sum2 *= num;
        }
    } else {
        sum2 = input;
    }	
    System.out.println("곱해주면 답은 " + sum2 + " 입니다");

 


ex7) 1 + (1+2) + (1+2+3+) + ... + (1+2+3+...+10)의 결과를 계산하시오.

    // 초기값 : 1, 끝 : 10, 증가량 : 1, 반복구분 : sum1 += ?;
    
    int sum1 = 0;
    for(int num =1; num <11; num++){
        for(int num1 = 1; num1 <num+1; num1++){
            sum1 += num1;
        }			
    }
    System.out.println(sum1);

출력 결과 및 풀이

 


ex8) 1 + (-2) + 3 + (-4) + ... 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100 이상이 되는지 구하시오.

    int sum11 = 0;  //총합 저장 변수
    int num = 0;
	
    while(true){
        num++;
        if(num%2==0){
            sum11 -= num;
        }else {
            sum11 += num;
        }
        if(sum11 >= 100){
        break;
        }
    }
    System.out.println(num);

출력 결과 및 풀이


ex9) 사용자로부터 입력받은 정수의 각 자리의 합을 더한 결과를 출력하는 프로그램을 작성하시오.
      예를 들어, 사용자가 53263을 입력하였다면 결과는 19가 되어야 한다.

    Scanner sc = new Scanner(System.in);
    System.out.println("값을 입력해주세요");
    int input = sc.nextInt();

    int sum = 0;
    while(input > 0) {
        sum += input % 10;
        // 예를 들어서 사용자가 123을 입력을 했다면 나누기 해서 나온 나머지 값을 summ에 저장한다
        input /= 10;
        // 사용자가 입력한 값에서 나누기 10을 해야 나머지 몫이 나오는데
        //위와 같이 나머지 나온 값을 계속 반복실행 해서 더하면 된다.
    }
    System.out.println("결과는 " + sum + " 입니다.");

 

 


ex10) 피보나치(Fibonnaci) 수열은 앞을 두 수를 더해서 다음 수를 만들어 나가는 수열이다. 예를 들어 앞의 두 수가 1과 1이라면 그 다음 수는 2가 되고 그 다음 수는 1과 2를 더해서 3이 되어서 1,1,2,3,5,8,13,21,... 과 같은 식으로 진행된다. 1과 1부터 시작하는 피보나치 수열의 10번째 수는 무엇인지 계산하는 프로그램을 작성하시오.

	int num1 = 1;
	int num2 = 1;
	int num3 = 0;
	System.out.print(num1 + "," + num2);
		
	for(int i =0; i<8; i++){
		num3 = num1 + num2;
		num1 = num2;
		num2 = num3;
		System.out.print(","+num3);
	}

 

                                                                                                                  문제 출처 : 자바의 정석에서..

Comments