본문 바로가기

콤퓨타/Programming) 왕초보 자바

12. (Loops and Conditions) More While Loops

 

while 문을 배우면서 

prefix , postfix 함께 배웠는데 오늘 굳이 

--count 와 count-- 

를 구분해서 알려주었는데

수업을 띄엄띄엄 듣다보니.. 사실 더 힘들다. ㅠㅠ 뭐가됐든 꾸주니가 최고인데 하. 매번 새로운거 하는 느낌들어서 죽을맛임.

여튼! 전위연산, 후위연산 돌려가며 출력 ㄱ

public class App {

	public static void main(String[] args) {

		int count = 10;

		while (count > 0) {
			System.out.printf("count is %d\n", count);
			count--;
            //--count;
		}
	}

}

 

놀랍게도 

후위연산자와 전위연산자가 들어갔을때 출력에 아무런 변화가 없엇따.

그럼 선생님 굳이 이걸 왜 시킨거지? 

 

후위연산자와 전위연산자를 각각 사용해도 동일한 출력값이 나온다

 

 

개발자 인간들이 쓸데 없는걸 시키지 않을텐데. 이걸 왜시켰지... 

그래서 코드를 좀 뜯어보니 

 

일단 

 

int count = 10; // 세팅값. 시작값이 10임. 바꿀 수 없음 

while (count> 0) { // 카운트 값이 0을 초과하는 한 일단 프로그램을 돌아간다는 말임

System.out.printf("count is %d\n", count); // %d 에, count 값이 들어간다는건데 이건 일단 루프에서의 맨 첫 라운드에서는 10임. 

count --; // 이 코드 뒤부터는 count 값이 1씩 감소한다. 그럼 다시 맨 처음으로 돌아가서 count 에는 9, count 출력에는 9 나오게 되는거임. 

 

근데 사실 이게 잘 이해가 안되었어서 챗지피티에게 물어봤고 챗지피티는 선생님의 의도와 함께 정답을 알려줌. 

1) 해당 내용은 초보자에게 헷갈리기 때문에 일부러 강조차 간단해 보여도 함께 walk through 한거고 

2) 전위 연산 (--conunt) , 후위연산 (count--) 는 개념이 다르므로 여러번 연습하면서 그 개념을 익혀야 한다고.. 

 

그래서 문제를 좀 달랬더니 

아래 코드 출력값을 달란다.

public class App {
    public static void main(String[] args) {
        int num = 3;

        while (num-- > 0) {
            System.out.printf("A: num = %d\n", num);
        }
    }
}

 

 

오답노트 1

 

 

오답노트 2

 

 

인간에게 감동먹은 챗지피티 또 다른 문제를 요청하자 아래 코드 출력값을 말하라고 종용

public class App {
    public static void main(String[] args) {
        int x = 4;

        while (x-- > 1) {
            System.out.printf("🔥 x = %d\n", x);
        }
    }
}
public class App {
    public static void main(String[] args) {
        int y = 4;

        while (--y > 1) {
            System.out.printf("⚡ y = %d\n", y);
        }
    }
}

 

 

나는 정답을 이야기 하고 오늘 세션 종료.

 

 

느낀점: 

1) 초보 수업이라 쉬운 내용처럼 보이기 때문에 꼭 챗지피티를 활용해서 문제를 다양하게 풀어보고 문제풀이도 꼼꼼하게 해보자. 

2) 머리로 풀어서 이해 해 보고, 손으로 냅다 따라쓰는 과정을 연거푸 거쳐야지된단다. 

 

그럼 오늘도 해피코딩...