if (조건식) {
참일 때 실행하는 문장;
} else {
거짓일 때 실행하는 문장;
}
조건문에 대한 설명을 보고 이해하는데 어렵지 않았다.
값을 비교하고 참일 때 실행문과 거짓일 때의 실행문 이 두가지면 끝나는데 얼마나 쉬운가?
하지만 문제를 풀면 풀수록 생각은 많아졌고 조건도 까다롭게 변형되어 금새 어려워졌다.
for (초기화; 조건식; 증감식) {
조건식 결과가 참인 동안 반복적으로 실행;
}
반복문 또한 개념은 어렵지 않았다.
반복문과 조건문은 같이 쓰이는 경우가 많아 잘 알아두면 나중에 머리아픈 경우가 줄어들 것이다.
int[] ballArr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] ball3 = new int[3];
// 배열 ballArr의 임의의 요소를 골라서 위치를 바꾼다
for (int i = 0; i < ballArr.length; i++) {
int j = (int) (Math.random() * ballArr.length);
int tmp = ballArr[0];
ballArr[0] = ballArr[j];
ballArr[j] = tmp;
System.out.println(Arrays.toString(ballArr));
}
ball3 = Arrays.copyOf(ballArr,3);
// 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사한다
for (int i = 0; i < ball3.length; i++) {
System.out.print(ball3[i]);
}
위 코드는 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다.
- int 형식의 j에 ballArr배열 길이(9)중 1부터 9까지 무작위 숫자를 대입
- int 형식의 tmp를 기존 배열 ballArr의 첫 번째 값으로 초기화.
- 다시 ballArr 첫 번째 값을 ballArr[j]인 무작위 숫자로 초기화.
- 3번의 무작위 숫자는 2번 값이고 결국 ballArr의 첫 번째 값이 된다.
위의 1~4번을 이해하는데 시간이 오래 걸렸고 다른 방법도 많이 생각했다.
애초에 int 형식의 빈 변수 3개를 만들고 ballArr 배열의 랜덤 값을 뽑아 저장해 각각의 자릿수로 합치기도 했지만
시간이 더 걸리는 듯 했고 코드의 줄이 늘어나면서 정리되지 않아 보는데 어려웠다.
앞으로 클린 코딩을 위해 사람의 생각을 버리고 컴퓨터와 같이 순서에 맞게 생각하는 방법을 길러야겠다.
'TIL' 카테고리의 다른 글
자바 - 상속 (0) | 2023.02.22 |
---|---|
자바 - 객체지향 (0) | 2023.02.21 |
Java - 변수 (0) | 2023.02.13 |
해커톤 프로젝트 경험 (0) | 2023.02.12 |
github 기본적인 기능. (0) | 2023.02.10 |