정수를 입력 받아서 그 수만큼 3의 배수를 출력하는 프로그램 만드는중
증감연산자 " i++ "은 " ; " 를 통과해야지 값이 1 더해진다고 배웠는데
11줄에서 i = 0
13줄 출력도 i = 0 인 상태니까 3*0 부터 출력되야 하는거 아님? 출력이 0 3 6 이렇게 되야하는거 아닌가?
13줄 끝 " ; " 를 지난 후에 i = 1 이 되는거 맞는거 아님?
뭐지
왜 i++ 하고 ;를 통과 안했는데 1이 증가한거임?
정수를 입력 받아서 그 수만큼 3의 배수를 출력하는 프로그램 만드는중
증감연산자 " i++ "은 " ; " 를 통과해야지 값이 1 더해진다고 배웠는데
11줄에서 i = 0
13줄 출력도 i = 0 인 상태니까 3*0 부터 출력되야 하는거 아님? 출력이 0 3 6 이렇게 되야하는거 아닌가?
13줄 끝 " ; " 를 지난 후에 i = 1 이 되는거 맞는거 아님?
뭐지
왜 i++ 하고 ;를 통과 안했는데 1이 증가한거임?
되야->돼야 (되어 = 돼임) [리듬 맞춤법 봇♬]
while (i++ < num) 에서 이미 증감이 일어난겁니다.
ㄴ postfix 는 뭘 기준으로 1이 더해지는거임? ; 통과하면 증가한다고 배웠는데
while 에 들어가면서 이미 i는 증감이 일어난 거에여 그리고 ;지나야 증감된다는건 무슨소린지 모르겟네여..
잘보세여 i가 증감된게 num 보다 작으면 참이잖아여 그러면 i가 증감된 상태에서 시작을 하겟져 0부터 하고싶었으면 i++을 printf 뒤에 놔야뎀
int a=1, b=1; printf("++a, b++"); 을 출력하면 2, 1 이렇게 출력되잖아? 1++는 ;를 통과전이니까 ; 통과후에 2가 되는거고 이후에 한번 더 b를 출력하면 2가 출력되고
postfix가 뭘 기준으로 1이 더해진다기 보단 postfix 랑 prefix랑 증감의 우선순위가 다르다고 해야되나 대충 그런식으로 생각하면ㄴ 데여
당연하져
제가 설명을 잘 못해서 적당히 설명해볼테니 알아서 알아들어주세여
++a 랑 b++ 은 증감이 되고 %d 로 변수의 값이 넘어가는 순차로 진행이 되여 근데 전위같은 경우는 전위의 우선순위가 더 높기 때문에 %d 로 넘어가기전에 증감이 일어나 버려여 근데 후위같은 경우는 %d로 넘어간다음에 증감이 일어나 버리져 그렇기 때문에 2,1 로 나오는 거에여
애초에 본문이랑 저 예시랑 접점이 없는 예네여 그냥 while 본체 따로 내용 따로 라고 생각하세여
while() > 이새끼 하나 {내용} 이새끼 하나 이렇게 구분지어서 생각을 해보세여 저거 2개가 따로따로 라면 while; {내용}; 이렇게 될텐데 while 안에 있는 i++ 가 내용쪽까지 넘어갈리가 없잖아여
님이 생각하는 방식데로 while 본체만의 ;를 이미 지났기 때문에 i에서 증감이 일어낫다고 생각하세여
시발 별것도 아닌거가지고 이렇게 길고 힘들게 설명해야된다니 존나 저 자신이 한심해지네여.. 좀 간단하고 알기쉽게좀 설명할 수 있었으면 좋겟다
while 자체가 세미콜론이 있다고 보면되는거네 그럼 이해되지. 난 이거 봣음
http://cocomo.tistory.com/26
여기 끝 부분에 설명이변수명 뒤에 사칙 단항 연산자 ++(또는 --)를 붙이면 해당 문장이 종료된 뒤,즉 세미콜론(;)을 만난 뒤에 증가되어, 다음 출력문장에서 증가된 형태를 볼 수 있었습니다.
맞는 말이긴 한데 저거는 while이랑 그 안 내용이랑 별개라고 생각하면 이해하기 쉬울거에여
이렇게 되어 있어서 ; 만나야지만 증가된다고 알았음
청멍//거에여->거예여 (받침 있으면 이에요 없으면 예요 이로 끝나면 받침 없으므로 예요 요 떼서 말 되면 에요 아니에요는 예외 인명엔 예요(예 : 길동이예요) 성까지 쓰면 이에요(예 : 홍길동이에요)) [리듬 맞춤법 봇♬]
청멍//되여->돼여 (되어 = 돼임) [리듬 맞춤법 봇♬]