본문 바로가기
카테고리 없음

JAVA 공부 1탄

by Driving 2022. 5. 2.
/* 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 문을 잘 봐야 함.