/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
int i=0, j=0;
for(int k=0; k < 3; k++){
if((++i > 1) && (++j > 1))
i++;
}
System.out.println(i + " " + j);
}
}
printf 구문을 찍어보면 알겠지만,
이게 사람 참... 이거 풀이해본다고 머리를 얼마나 쥐어뜯었는지...
최종 결과는 4 2 가 나온다.
" " 뒤에 변수가 오면 붙이고
변수 + " " 하면 값으로 출력하고 신기함...
잊지 않기 위해 써놓음.
# 풀이과정
k 가 총 3회차까지 0,1,2 수행
1회차 시작 전 for문 단계 -> k = 0, i = 0, j = 0
1회차 시작 if 내 i 먼저 시작(왼쪽에서 오른쪽으로 진행) 해서 i 1증가 -> j는 수행하지 않음 왜냐면 1이므로
i는 1인 상태이고 if 문에서 거짓이 되었으므로 i++은 수행하지 않음.
2회차 시작 if 내 i 먼저 시작해서 i 1증가(i는 현재 2값) -> i가 만족하므로 j 변수 1증가 -> if 문에서 거짓이 되어
i는 2인 상태, j는 1인 상태이고 if 문에서 거짓이 되었으므로 i++은 수행하지 않음.
3회차 시작 if 내 i 먼저 시작해서 i 1증가(i는 현재 3값) -> i가 만족하므로 j 변수 1증가(j는 2값) ->
if 문에서 참이 되어 i는 3, j는 2상태이므로
i++ 수행 해서 i 값은 4
최종 결과는 4 2 로 출력.
만약 &&(and) 가 아니라 || (or) 라면 값이 달라질 수 있으니 조건절, 변수, for, if 문을 잘 봐야 함.