(TIL)pre-onboarding_03

졍이🥨·2022년 11월 10일
0

개발일지

목록 보기
6/38

2022-11-10 (목)

Chap_04 조건문과 반복문

조건문의 종류에는 if문, switch문이 있습니다. if문은 조건식의 결과가 true, false이냐에 따라, switch문은 변수의 값에 따라 실행문이 결정됩니다.

if문 : 조건식이 true이면, 블록을 실행하고, false이면 블록을 실행하지 않습니다.

if-else문 : if문의 조건식이 true이면 if문의 블록이 실행되고, 조건식이 false이면 else블록이 실행됩니다.

if-else if-else문 : 처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행블록을 선택할 수 있습니다. else if문의 수는 제한이 없다.


*주사위를 굴려서 나올 수 있는 1~6 중에서 하나의 수를 무작위로 뽑기

①먼저 임의의 정수를 뽑는 방법 : Math.random() 메소드 활용하기. 이 메소드는 0.0과 1.0사이에 속하는 double 타입의 난수 하나를 리턴한다. 이때 0.0은 포함되고 1.0은 포함되지 않는다.

이것을 비교 연산자로 표현하면 다음과 같다.

0.0 <= Math.random( ) < 1.0

②1~10 사이의 정수 중에서 하나의 정수를 얻기 위해 각 변에 10씩 곱하면 다음과 같은 범위에 속하는 하나의 double타입의 값을 얻을 수 있다.

0.0 * 10 <= Math.random( ) * 10 < 1.0 * 10

③이 상태에서 각 변을 int타입으로 강제 타입 변환하면 다음과 같은 범위에 속하는 하나의 정수값을 얻을 수 있다.

(int)0.0 <= (int)(Math.random( ) * 10) < (int)10.0

④이 상태에서 각 변에 1을 더하면 비로소 1~10사이의 정수 중에서 하나의 정수를 얻게 된다.

0 + 1 <= (int)(Math.random( )*10) + 1 < 10 + 1

⑤이 원리를 이용하면 start부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기 위한 연산식을 다음과 같이 만들 수 있다.

int num=(int)(Math.random( ) * n)+start;

예를 들어, 주사위 번호 하나를 뽑기 위해 다음 연산식을 사용할 수 있다.

int num=(int)(Math.random( ) * 6)+1;

*또 다른 예로 로또 번호 하나를 뽑기 위해서는 다음과 같은 연산식을 사용할 수 있다.

int num=(int)(Math.random( ) * 45)+1;


if else문으로 주사위번호 뽑기 코드 (혼자공_자바 p.140 참고)

switch문으로 주사위번호 뽑기 코드 (혼자공_자바 p.142 참고)

-->switch문에서 case끝에 break가 붙어있는 이유는 다음 case를 실행하지 않고 switch문을 빠져나가기 위해서입니다. break가 없다면 case가 연달아 실행되며, 이 때 case값과는 상관없이 실행된다.

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽으 선택해도 좋지만, for문은 반복 횟수를 알고 싶을 때 주로 사용하고, while문은 조건에 따라 반복할 때 주로 사용한다.

while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식을 동일하다.


for문은 정해진 횟수만큼 실행문을 반복합니다.

어떤 경우에는 초기화식이 둘 이상 있을 수 있고, 증감식 역시 둘 이상 있을 수 있습니다. 이런 경우에는 다음과 같이 쉼표(,)로 구분해서 작성합니다.

for (int i=0, j=100; i<=50 && j>=50; i++, j--) {...}


while문은 조건식이 true일 경우에 계속해서 반복합니다.

break문 : 반복문인 for문, while문, do-while문, switch문을 실행 중지할 때 사용합니다.만약 중첩반복문이 있을 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료하지 않습니다. 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(라벨)을 붙이고, 'break 이름;'을 사용하면 됩니다.

continue문 : 반복문인 for문, while문, do-while문에서만 사용되는데, 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동합니다. continue문은 반복문을 종료하지 않고 계속 반복을 수행한다는 점이 break문과는 다릅니다. 대게 if문과 같이 사용된다.

profile
Front-End :)

0개의 댓글