날아라쩡글이의 블로그입니다.
내포된 if 문, switch문,Scanner, Break, Continue 본문
내포된 if문
if문 내에 다른 if문이 포함됨
- if (조건식 1) {
- //조건식 1이 true로 판정되면 블록내의 수행문이 실행된다
- if (조건식2) {
- //조건식 1이 true로 판정되고, 조건식 2도 true로 판정되면 블록내의 수행문이 실행된다.
- } else {
- //조건식 1이 true로 판정되고, 조건식 2는 false로 판정되면 블록내의 수행문이 실행된다.
- }}
- 내포된 if가 많아질수록 깊이가 더욱 깊어짐 --->프로그램의 복잡도가 높아짐
- if내의 if내의 if문의 경우 꼭 필요시에만 작성해야한다. 내포된게 많을수록 복잡도가 올라가고, 가독성이 떨어진다.
- 그러나 어떤 경우에 실행되는지 파악하기는 쉽다.
코딩을 할 때에는 실패한 경우를 먼저 찾는게 좋다. 코드가 더욱 간단해지기 때문이다.
switch문
- 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
- 처리할 경우의 수가 많은 경우 유리하다.
- switch (조건식) {
- case 값1:
- // 조건식의 연산결과가 값 1과 일치하는 경우 실행될 수행문;
- break;
- case 값2:
- // 조건식의 연산결과가 값 2 와 일치하는 경우 실행될 수행문;
- break;
- default: (if문에서 else부분과 동일함)
- // 조건식의 연산결과가 일치하는 case문이 없을 때 실행될 수행문
- }
- switch의 조건식의 경우 정수, 문자, 문자열만 가능하다. 열거형만 가능하다.
- 값이 중복이 되지않아야한다.
- break문이 없으면 그다음에 정의된 case문~ default문까지 전부 실행됨으로 연산결과가 달라지기 때문에 break문을 꼭 넣어줘야한다.
- 조건식의 값과 case의 값이 ==만 가능하다. 범위비교가 안됨
- 1. 비교조건자체가 정해져있고, 양이 많지않은 경우에만 가능함
- 2. 비교할 대상이 되는 값들이 미리 결정, 그 중에 한 개의 값을 가지고 있는 경우에 사용이 가능함.
- 자바 1.7 이전에는 case에 숫자와 영어밖에 사용 못 했었음 이후로 문자열 사용 가능함.
- switch문은 많은 사용을 하지 않는다. if문을 많이사용하고, 범주형 데이터에서 비교값들이 case를 미리 알고 있고 == 를 알고있을때만 switch문을 사용한다.
반복문
- 반복문은 ~하는 동안을 구현할 때 사용을 한다. 그리고 for문과 while문은 구현할 때가 구분이 되어 있는데, for문의 경우 반복의 횟수를 알고 있을 때 (일반적) 으로 많이 사용한다. while문은 반복의 횟수를 모를 때, while을 생각 할 수 밖에 없을 때 사용한다.
- 보통은 while문 사용이 정해져 있기 때문에 지금은 다루지 않을 예정이다. 책에 나온 것처럼 사용하는 경우는 없다. collection 때 사용할 예정이다.
- 반복문은 특정한 수행문을 반복해서 실행하는 구문이다.
- 반복문은 제시된 조건이 true인 경우 블록내의 수행문을 반복 실행한다.
- for, while, do ~ while 구문을 사용한다.
for 문
- for문은 초기화식, 조건식, 증감식, 코드 블록으로 구성되어있다.
- 제시된 조건이 참인 경우 반복 실행한다.
- 초기화식, 조건식, 증감식, 모두 생략이 가능하다 ---> 생략이 되었다고 제거해서는 안되고 위치만 변경하는 것이다.
- 초기화식에서 선언한 변수는 조건식, 증감식 및 for문의 블록내에서만 사용가능하다.
- for (초기화식; 조건식; 증감식) {
- // 조건식이 true인 동안 수행할 수행문;
- // 조건식이 true인 동안 수행할 수행문;
- }
- for (;;){
- --------->무한반복문 코드
- }
- 1 . 초기화식 2.조건식 (true면 실행, false면 종료 ) 3.실행문장 4. 증감식 5.조건식 6.실행문장(false일 때까지 )
- 초기화식 : 초기의 값을 설정함, 몇부터 시작인지, 변수 선언, 1번만 실행함
- 조건식 : 최대 값을 설정함, 몇까지 진행인지, 컨텐츠의 객수만큼 표현함,
- 증감식 : 변화를 주지않으면 무한반복 됨, 증감연산자를 사용함
- Ex) 영화싸이트, 예매율과 그림, 평점 , 계속된 반복
- 인스타 : 계속 반복된 사진
- 11번가 : 판매물품, 반복적인 효과 ---> 반복 작업을 통해 반복하는 것
- 데이터를 가져올때 전체적으로 가져오는 것이 아닌 원하는 만큼 추출해서 가져옴, 20, 50 100개 내외로 이럴 때 반복문을 사용하면 유용함.
for문의 목적 -----> 업무로직, 정보시스템의 경우 데이터의 갯수가 정해져있음.
배열과 리스트는 각방마다 index를 가진다. 똑같은 형태인데 x[0], x[1], x[2], x[3], x[4]... 배열의 이름만 다름, 그래서 for문을 이용하여 쉽게 출력을 할 수 있게 만들어준다. 여러개의 데이터를 저장한 자료구조를 다루기 위하여 for문을 사용한다. ----------->index를 갖고 있는 자료구조에서 활용이 가능함
if 와 for문은 함께 사용이 가능하다.
// 1 ~ 10까지의 정수 중에서 짝수/홀수 의 합계를 계산하기 ---> 1~10까지의 정수 ( 반복문 ) 짝수/홀수의 합계 -->짝수일때 홀수일때 -->제어를 시킨다.
변수를 만들고 정의할 때 변수의 범위를 생각해야한다.
변수를 코드 블록으로 작성하지 않고 넓게 쓰면 충돌을 신경써야함, 실제로 사용하는 곳에서만 사용하도록, 좁게 사용하는 것이 좋음.
Scanner--> JRE--->java.util(package).Scanner안에 scanner에 대해서 작성이 되어있다. import를 시키면 package안에 있는 내용을 가지고 오는 코드로 작성할 수 있다. export가 내보내다이다.
- 내부를 확인하면 빨간색으로 되있는것은 캡슐화 시킨 부분으로 구지 알 필요도 없는 곳에 감춰놓은, 프로그램이 돌아가는 사고와 직접 연관된 곳으로 은닉화 한것이다.
- 나머지 중 nextByte() nextShort() nextBoolean() nextInt() nextLong() nextDouble() 이있는데,
- nextInt()는 키보드로 입력된 값을 정수(int 타입의 값으로)로 읽어온다.
- nextLong()는 엄청 큰 숫자를 읽어올 때 사용한다.
- nextDouble()는 소수로 읽어올 때 사용한다.
- Scanner scan = new Scanner(System.in);에서 System.in의 경우 (표준 입력 장치, 키보드)으로 부터 입력값을 읽어오는 Scanner객체를 생성한다는 의미이다.
- scanner.close()의 경우 운영체제와 하드웨어와 연결된 표준입력장치가 window, word에 사용을하는데, Resource leak: 가 일어날 수 있다는 표시가 뜬다. 자원의 누수가 일어날 수 있다는 표시가 뜨는데 , 컴퓨터가 내것, 사용후 종료한다면 close()메소드를 사용하지 않아도 무방하고, 상시연결이 되어있고, 24시간동안 켜져있는 컴퓨터라면 메소드를 사용해주는 것이 좋다.
사용자가 if, for , DB 하나도 몰라도 수강신청이 가능함, 서비스가 가능함, 프로그램이란 프로그램의 P도 몰라도 원하는 작업이 구현되도록 하는 것이 우리의 목적
Break, continue : 반복을 중단시키기, 다음번 반복으로 넘어가기
- 반복문 안에서만 사용가능하다 (Break문은 Switch에서도 사용가능함.)
- 남발하면 소스코드를 이해하기 어렵기 때문에 신중하게 사용해야한다.
- 무한반복인 경우 while을 사용한다. for문에 비해 구조가 간단하기 때문 , 반복횟수를 알 수 없는 경우 사용하는 반복문으로 while문을 사용해서 반복작업을 수행할 때는 대상 객체는 반복 지속 여부를 조회할 수 있는 기능을 제공해야한다. while문을 사용하면 무한루프를 간단히 구현할 수 있다. 이때 반복문안에서 조건문과 함께 사용되는 것이 break문이다.
- break문은 반복문안에서 조건문과 함께 사용이 되어야 한다.
- break문과 조건문, 실행문 위치에 따라서 출력되는 결과가 다르기 때문에 사용을 잘 해야한다.
- continue : 남아있는 수행문을 실행하지 않고 다음번의 수행문을 시행한다. : while
- for: continue : 남아있는 수행문을 실행을 취소하고 다음번 반복을 위해서 증감식으로 이동한다.
- 예를 들어 부양가족에 따라서 가족 수당을 지급한다는 급여 명세표를 만든다고 한다.
- 이런식으로 continue의 경우 기본급과 근무일수만 있을경우 다음 조건문이 아닌 다시 반복문으로 가서 수행한다.
- 이렇게도 사용될 수 있다.
- break문의 경우 아예 반복문을 탈출하고, continue는 탈출하지 않고 거기서만 벗어나서 다시 반복문을 수행한다.
'중앙 HTA (2106기) story > java story' 카테고리의 다른 글
배열 (0) | 2021.09.03 |
---|---|
Array문 (0) | 2021.09.02 |
제어문/ 반복문(if)문 (0) | 2021.09.01 |
대입, 비교, 조건, 삼항 연산자 (Operator) (0) | 2021.09.01 |
프로그램이란 (2) | 2021.08.31 |