컴퓨터는 계산이라기보다는 끼워맞추기 식입니다.
만약 90을 찾아야 한다면 무식하지만 굉장히 빠른 속도로
답은 1인가요? -> 아닙니다
답은 2인가요? -> 아닙니다
답은 3인가요? -> 아닙니다
....
답은 90인가요? -> 맞습니다
이런 식으로 정답을 도출해냅니다.
즉, 컴퓨터는
계산 결과가 맞는지 틀렸는지 조건을 판단하는 '조건문'과
계산을 계속 반복하는 '반복문'
이 두가지 행위를 조합해서 생각을 합니다. 엄청난 속도로 말이죠
1. 조건문
내가 만약 시인이라면 그댈 위해 노래하겠고,
그렇지 않으면 그댈 위해 춤을 추겠소
위의 문장을 코드 형식으로 표현하면 다음과 같습니다.
만약에(내가 시인) {
그댈 위해 노래를 하겠소;
} 그렇지 않으면 {
그댈 위해 춤을 추겠소;
}
//아래와 같다
if(나 == 시인) {
그댈 위해 노래를 하겠소;
} else {
그댈 위해 춤을 추겠소;
}
조건문에 사용할 수 있는 수학식 부호는 아래와 같습니다.
==, >, <, >=, <=, !=
만약 조건문이 여러개인 경우에는?
ex) 그의 학년이 3학년이고 이름이 철수라면 이 도시락을 주세요.
if((그의 학년==3) && (이름=="철수")) {
이 도시락을 주세요; }
ex) 날짜가 3월 6일 일 때, 학년이 3학년이고 이름이 김철수인 그에게 이 도시락을 주세요.
if((날짜 == "3월 6일") && (학년 == 3) && (이름 == "김철수") {
이 도시락을 주세요; }
ex) 학년이 2,3,4학년이면 이 햄버거를 주세요, 아니면 이 김밥을 주세요.
if((학년 == 2) || (학년 == 3) || (학년 == 4) {
이 햄버거를 주세요; } else {
이 김밥을 주세요; }
ex) 음... 만약에 햄버거 가게 문 열었으면 햄버거 먹고, 문 닫았으면 떡볶이 먹자.
혹시 떡볶이 집도 문을 닫았으면 편의점에서 컵라면 먹자
if(햄버거가게 == 열었다) {
햄버거를 먹는다; } else if(떡볶이가게 == 열었다) {
떡볶이를 먹는다; } else {
편의점에서 컵라면을 먹는다; }
2. 반복문
반복은 대부분 무한하게 반복되기 보다는 어느 조건이 만족하는 동안만 반복됩니다.
예를 들어 내가 학생이라면, 졸업하기 전 까지만 아래와 같은 행위를 반복하는 것입니다.
(내가 학생)인 동안 반복 {
아침에 일어나서;
옷을 입고;
학교에 가서;
공부를 하고;
집에 가고;
잠을 잔다;
}
이 때 반복을 의미하는 while을 사용할 수 있습니다. while은 '~동안' 이라는 뜻입니다.
아침에 일어나서 하루를 보낸 다음 다시 하루가 시작될 때 무엇이 변해야 내가 학생일 때와 학생이 아닐 때를 구분할 수 있을까요? 예를 들어 내가 중학생이라고 생각해본다면, 중학생 기간 3년은 1095일입니다.
그러면 아래와 같이 표현할 수 있습니다.
int day = 1; //초깃값
while(day <= 1095) {
아침에 일어나서;
옷을 입고;
학교에 가서;
공부를 하고;
집에 가고;
잠을 잔다;
day = day+1; //하루가 끝난다
}
여기에서 나오는 개념인
초깃값, 순환을 마치는 조건, 순환할 때마다 변경되는 값
3가지 순환조건을 입력하는 for문이 있습니다.
for(int day = 1; day <= 1095; day = day+1) { ..... }
횟수 = 횟수 + 1은 횟수 +=1; 또는 횟수 ++;로도 쓸 수 있습니다.
코딩은 위의 조건문과 반복문, 그리고 변수와 메서드를 이용해 적절히 조합하는 것에 불과합니다.
이 적절한 조합을 위해 사용하는 것은 클래스입니다.
'JAVA > Basic' 카테고리의 다른 글
JAVA 기초 - 2 (0) | 2022.10.31 |
---|---|
JAVA 기초 - 1 (0) | 2022.10.31 |