MSM8994의 화룡점정 블로그

[JAVA] 1부터 10까지 합과 홀수 합과 짝수 합 식까지 표시하기 본문

코딩

[JAVA] 1부터 10까지 합과 홀수 합과 짝수 합 식까지 표시하기

msm8994 2018. 7. 16. 07:00

1부터 10까지 합과 홀수 합과 짝수 합을 식과 모두 표시하려면 그냥 합, 홀수 합, 짝수 합 이렇게 3개의 반복문을 써도 되겠지만 코드 분량이 늘어나게 되므로 여기서는 한 반복문으로 하도록 하겠습니다.

반복중 발생하는 내용을 바로 출력하는 콘솔출력만으로는 내용이 섞여 달성하기 힘드실 것입니다. 문자열 변수를 만들어 여기에 식을 적도록 하면 간단히 해결할 수 있습니다.

※1 String을 초기화하지 않으면 글자를 붙일 수 없고 null로 초기화하면 실행도중 오류가 발생하게 됩니다. 따라서 빈 문자열로 초기화했습니다.
※2 여기서 조건으로 나오는 메소드는 String 객체에 공통으로 있는 isEmpty() 인데요, null이 아닌 문자열 객체에 아무 글자도 들어있지 않는지를 (String.length() == 0) 알려줍니다. 공백은 글자가 들어있는 것으로 처리됩니다. 빈 문자열이 아니어야 한다면 앞에 !를 추가해 논리값을 뒤집으면 되겠습니다.


// 변수 선언
int max = 10;   // 최대값
int sum = 0;	// 합을 저장할 변수
int sumOdd = 0;     // 홀수 합을 저장할 변수
int sumEven = 0;    // 짝수 합을 저장할 변수
String expSum = "";     //합의 식을 저장할 문자열
String expOdd = "";     //홀수 합의 식을 저장할 문자열
String expEven = "";    //짝수 합의 식을 저장할 문자열

// 1부터 max까지 합 구하기
for (int i = 1; i <= max; i++) {

    // 그냥 합
    sum += i;
    // 그냥 합의 식에 + 붙임
    if(!expSum.isEmpty()) { // 빈 문자열 아닐 때만 + 찍기
        expSum += "+";
    }
    // 그냥 합의 식에 수 붙임
    expSum += i;
    
    if(i % 2 == 0) {
        // 짝수 합
        sumEven += i;
        // 짝수 합의 식에 + 붙임
        if(!expEven.isEmpty()) { // 빈 문자열 아닐 때만 + 찍기
            expEven += "+";
        }
        // 짝수 합의 식에 수 붙임
        expEven += i;
        
    } else {
        // 홀수 합
        sumOdd += i;
        // 홀수 합의 식에 + 붙임
        if(!expOdd.isEmpty()) { // 빈 문자열 아닐 때만 + 찍기
            expOdd += "+";
        }
        // 홀수 합의 식에 수 붙임
        expOdd += i;
        
    }

}

// 식의 끝에 = 붙이기
expSum += "=";
expOdd += "=";
expEven += "=";

System.out.println("그냥 합: " + expSum + sum);
System.out.println("홀수 합: " + expOdd + sumOdd);
System.out.println("짝수 합: " + expEven + sumEven);


Comments