04-1 조건문 : if문, switch문
▶ if문 VS switch문
공통점 : 조건문
차이점 :
- if문은 괄호 안 조건식의 t/f에 따라 명령문을 선택하고,
switch문은 괄호 안의 '값'에 따라 명령문을 선택함. - if문은 따로 break가 필요 없지만,
switch문은 해당되는 case를 찾고 이후 break가 없으면 다음 case들은 값과 상관없이 실행됨 (fallthrough)
(일단은 초보니까 이걸 어떻게 활용할까 생각하지 말고, break를 안쓰면 오류가 난다고 생각하고 있자.) - break문, 문법, 익숙하지 않음 때문에 switch를 안쓰는 경향이 있는데 (특히 내가)
실무에서는 가독성 때문에 많이 쓴다고 함
=> 그러니까 지금부터라도 많이 쓰려고 연습하자..@
참고 : 실무에서 사용되는 switch문
https://www.goodsource.co.kr/69
▶ 난수 생성기
Math.random( )에서 0이상, 1미만의 double타입 실수를 리턴하므로 0~9 사이의 정수를 얻기 위해선
(int)(Math.random( )*10)를 해주면 됨
비슷하게, 1~6 사이의 정수를 얻기 위해서는
(int)(Math.random( )*6)+1를 해주면 됨
일반화 - a에서 시작하는 범위가 n인 난수 추출
(int)(Math.random()*n)+a
04-2 반복문 : for문, while문, do-while문
for, while, do while을 모르는게 아니므로
이번 챕터는 실습으로 복습 & 놓치는 것 위주로 정리
▶ for 문
- 초기화식이 필요 없는 경우 초기화식 생략 가능 cf. for(;;) == while(true)
- 초기화식, 증감식 둘 이상 가능 (연결은 콤마로)
- 초기화식에서 사용한 변수는 for문 블록 내부의 로컬변수
- for문 이전에 선언한 변수를 for문에서도 사용 가능 => 증감식으로 인한 값 변화가 for문 끝나도 유효
package sec02.exam03;
public class ForSumFrom1To100Example {
public static void main(String[] args) {
int sum = 0;
int i = 0;
for(i=1;i<=100;i++) {
sum +=i;
}
// sum에 1부터 100까지 더하고 i는 101이 되어있는 상태
System.out.print("1~"+(i-1)+" 합 : "+sum);
}
}
▶ for문 사용 꿀팁
i = 1이고 여기에 더해지고 1 증가해서 조건 맞나 어쩌고 저쩌고~~
=> 이렇게 스텝별로 생각하면 머리 터질 수도 있음🙄
for(int i =0; i<=100; i++)를 그냥 '0부터 100까지 1씩 증가' 라는 개념으로 뭉탱이지어 받아들이자!
▶ 중첩 for문
밖의 for문이 한번 돌 때 안의 for문은 전체 다 돌아감
ex. 중첩된 for문이 다 for(int i = 0; i<9 ; i++;)라고 하면
밖의 for문이 1번 돌아감 => 안의 for문은 9번 돌아감
밖의 for문이 9번 돌아감 => 안의 for문은 81번 돌아감
▶ beak, continue
공통점 : 이후 명령어를 실행하지 않음
차이점 : break - 루프 탈출 / continue - 루프 시작으로 이동
사용 : 대부분 둘 다 if문과 함께 사용함
▶ 상위 for문 break
중첩 for문에서 break를 두번 넣어야 하는 깔끔하지 않은 상황을 경험한 적이 있을 것임!
=> for문 앞에 라벨 : & break 뒤에 라벨 붙이기로 해결 가능
package sec02.exam09;
public class BreakOutterExample {
public static void main(String[] args) {
Outter:for(char upper = 'A'; upper<='Z' ; upper++) {
for(char lower = 'a'; lower <='z'; lower++) {
if(lower=='g') {
break Outter; // 중첩 for문 한번에 탈출
}
System.out.println(upper+"-"+lower);
}
}
System.out.print("시스템이 종료되었습니다.");
}
}
연습 문제 중 책과 내 답 달랐던 것
왼쪽으로 n행에 n개의 별찍기
오른쪽으로 n행에 n개의 별 찍기
은행 프로그램
'JAVA > 혼공자' 카테고리의 다른 글
[혼공자] Chapter 05-2 배열 (0) | 2022.07.23 |
---|---|
[혼공자] Chapter 05-1 참조 타입과 변수 (1) | 2022.07.23 |
[혼공자] Chapter 03. 연산자 (0) | 2022.07.21 |
[혼공자] Chapter 02. 변수와 타입 (0) | 2022.07.20 |
[혼공자] Chapter 01. 자바 (1) | 2022.07.18 |