날아라쩡글이의 블로그입니다.

내포된 if 문, switch문,Scanner, Break, Continue 본문

중앙 HTA (2106기) story/java story

내포된 if 문, switch문,Scanner, Break, Continue

날아라쩡글이 2021. 9. 2. 19:12
반응형

 내포된 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
Comments