KOSTA
KOSTA 교육 (Method, 배열, while, do~while, for, break, continue)
코린이 연대기
2021. 2. 9. 19:01
배운 내용
- while
- do ~ while
- for
- break
- continue
- 메소드(Method)
- 배열(Array)
1. while
반복문의 한 종류로서 보통 조건에 따라 반복할 때 사용한다.
- 조건이 true일 경우에 계속 반복
- 여기서 false가 출력되면 정지하게 된다.
- 초기식 -> 조건식 -> 명령문 -> 증감식 순이고 수직으로 나타낸다.
- 1을 변수 값으로 실행하고 while문을 이용하여 11보다 작다고 하였을 때
- num을 출력하고 true일시 1을 추가해준다.
- num이 11이 되면 거짓이 되므로 정지하게 되어 while문 밖으로 나가 Done을 출력하게 된다.
- num이 10보다 작거나 같을 때 만족한다면 sum += num과 이후 num에 1을 추가한다.
- 반복하여 11이 되었을 경우 false로서 밖으로 나와 합 55가 나온다.
- while(true)는 특정 조건을 만족할 때까지 계속 반복한다.
- a, b 값을 입력한 후 b가 a보다 컸을 때 break를 통해 벗어나게 된다.
- 그에 맞는 값이 출력된다.
2. do ~ while
while과 마찬가지로 반복문의 한 종류로서 보통 조건에 따라 반복할 때 사용한다.
- 조건이 true일 경우에 계속 반복
- 여기서 false가 출력되면 정지하게 된다.
- 무조건 한 번은 실행하는 특징이 있다.(명령문을 실행 후 조건을 비교하기 때문)
- do 명령문에서 true가 나오면 다시 돌아가고 false가 나오면 돌아가는데 n은 양수가 되어야 false가 되기 때문에 10으로 실행했다 가정하자
- 각 변수를 실행 후 while문 i가 10보다 작아야 반복을 하기 때문에 10까지 반복을 하게 된다.
- 이 때 반복은 while문 내의 sum += i와 i++에 적용되어 11이 되는 순간 false가 되어 밖으로 나와 값은 “10까지 합 : 55” 가 된다.
3. for
while과 마찬가지로 반복문의 한 종류로서 보통 조건에 따라 반복할 때 사용한다.
- 초기식 -> 조건식 -> 명령문 -> 증감식 순이며 수평으로 나타낸다.
- 중복되는 코드를 많이 생략할 수 있다.
- for(초기값; 종료여부; 증감값) 으로 작성한다.
- 1부터 10까지 합을 구하기 위해 sum 변수 실행과 i 변수를 설정한다.
- i는 1이고 10보다 같거나 작으며 sum += i;가 true일 시 i++를 반복한다.
- 반복 중 10보다 커지면 반복을 종료하고 10까지의 합을 출력한다.
값은 55이다.
- i가 2부터 시작해 true이므로 i를 출력하고 내부 for문으로 이동하여
j를 반복한다. - j가 9가 되고 false가 된 후 다시 외부 for문 i++로 반복하여 3으로 다시 반복을 시작한다.
- 결국 외부 for문이 10이 되면 거짓이 되므로 반복은 끝이난다.
값은 2~9 * 1~9 = i*j가 된다.
- for문 대표 예시로서 별을 수직으로 1개씩 증가하며 총 5회 실행시킨다.
- i가 1이 참이므로 내부 for로 반복하여 j가 i보다 작거나 같을때 까지 반복한다. 그 이유는 *을 출력하기 위해선 true가 되어야 반복하기 때문이다.
- 여기선 i와 j가 1이고 1회 반복한 후 j가 더 커지기 때문에 외부 for문으로 다시 반복한다.
- i가 2도 참이므로 내부 for문에서 2번 반복을 하기 때문에 *이 2번 출력된다.
- 외부 for문이 총 5회 반복되고 내부 포문은 반복 될 수록 값이 커져 5회까지 반복하기 때문에 위의 주석과 같은 값이 출력된다.
4. break
반복문을 벗어나는데 사용한다.
- switch문에서 case 1~3에 위치한 break는
while문에서 1~3을 입력했을 때 반복되어 switch문으로 이동한다. - 이동 후 case 1~3에서 break되어서 다시 while문으로 돌아간다.
5. continue
반복 continue 부터 문장을 생략하고 다시 반복을 한다.
- 특정 조건을 만족하면 다시 반복문을 실행한다.
- i가 1로 실행, 10보다 같거나 작아야한다.
- if문에서 i를 2로 나눴을 때 나머지가 0이면 continue이후는 무시하고 다시 반복문을 수행한다.
- 그래서 나머지 0인 값들을 무시하고 홀수만 남게 되어 i가 출력 시
홀수만 남게 된다.
6. Method(메소드)
메소드는?
클래스 내에 존재하는 함수를 말한다.
여기서 메소드의 특징으로는,
- 중복된 코드를 최소화 하는 효과가 있다
- 유지보수가 수월해진다.
- 메소드 이름을 통해 메소드를 호출한다.
- 변수 = 메소드이름(파라미터1, 파라미터2, 파라미터3); 형식이다.
메소드를 생성시 가장 주의할 점으로는
- 호출시 파라미터의 데이터를 일치시켜야한다.
메소드 예시를 보면서 공부해보자
- 어떠한 정수 2개를 더하기 위한 예시로서 int를 사용하여 add라는 메소드이름 그리고 2개의 정수 파라미터를 설정하였다.
- sum 변수를 추가하여 두개의 정수 파라미터를 더하기 실행해준다.
- 이 sum값을 리턴한다.
- main메소드에서 이 값을 출력하기위해 result 변수를 실행하고 더하기연산을 진행하여 결과값을 도출한다. 값은 7
- 각 과목별 점수를 키보드로 입력을 받아야 하기 때문에 main메소드에 먼저 스캐너를 통해 입력값 실행을 한다.
- 총점과 평균을 구하기 위해 각각 add, avg 정수 메소드를 만들고 각 과목 파라미터를 설정한다.
- 변수를 설정 후 연산식을 대입해준 후 리턴한다.
- main메소드에 add, avg 출력을 위한 변수를 선언하고 add, avg와 파라미터 변수값을 실행하여 출력한다.
- 키보드로 입력받아야 하기 때문에 Scanner를 사용한다. getInput을 사용하여 출력할 예정이기 때문에 num변수를 리턴한다.
- 총점을 구하기 위해 getTotal메소드를 사용하여 리턴, 평균은 getAverage메소드를 사용하여 리턴한다.
- main메소드에서 해당 변수를 0으로 추가하고 호출할 과목을 getInput로 호출한다
- 총합, 합계 변수를 메소드, 파라미터를 적용하여 출력값을 출력한다.
7. 배열
배열은?
여러개의 데이터 값을 하나의 데이터로 모아 사용한다.
배열의 특징
- 많은 변수들을 하나의 변수로 해결할 수 있다.
- 주소값이 있다면 언제든 그 주소를 사용할 수 있다.
- reference = 참조 = 주소값
- [] -> 배열을 의미
배열의 단점
- 한가지의 데이터타입 밖에 넣을 수 밖에 없다.
- 한 번 생성 하면 더 이상 늘어나지 않는다.
예시를 보며 배열을 공부해보자
- 배열을 선언할 때의 종류는 3가지가 있다.
- 향상된 for문을 이용하여 배열을 출력할 수 있다.
- 배열을 풀이할 시 4단계에 나누어서 풀이하면 수월하게 풀이가 가능하다.
- arr[] 배열에 9라는 주소값을 실행하였다.
- for문을 이용하여 i 변수를 0으로 실행한다. i의 조건값을 arr.length로 실행한다. 여기서 length는 arr의 크기를 말한다.
- 여기서 arr[i] arr배열의 순서를 나타낸다. 예를들어 arr[0]은 첫 번째이고 arr[6]은 일곱 번째이다.
- 0부터 시작할 때 7 * 1이 나와야하기 때문에 i에 1을 더하고 실행한다.
- 사람 수, 키를 입력하기 위해서 변수 2개를 실행한다.
- 사람 수를 입력해야 하므로 Scanner를 이용하여 값을 입력한다.
- 입력한 사람 수대로 키를 입력하기 때문에 for문을 사용하여 반복한다.
- 추가로 최대값을 구할 maxOf를 만들어 새로운 maxkey 변수를 실행한다.
- 변수를 최대값으로 리턴하여 출력해야하기 때문에 for문을 사용하여 최대값을 구하기 위해 if문을 추가하였다.
- 리턴하여 key변수로 최대값을 호출하고 출력한다.
- 5가지의 int배열을 생성, 3가지의 String배열을 생성한다.
- for문을 이용하여 국어, 영어, 수학이 반복될 수 있도록 실행한다.
- score[3]은 총점이기 때문에 score[2]까지 전부 더해주면 총점이 된다.
- 총점을 출력하고 score[4]는 평균이므로 score[3]을 3으로 나누어주면 값이 도출된다.