디지털 컨버전스/JAVA

[Java] 기본 입력 , 제어문

gimyeondong 2020. 2. 6. 09:05

 

  • UI : 사용자 인터페이스
  • UX : 사용자경험

 

  • 입력기능은 예외가 발생할 수 있다.
    1. 예외처리
    2. 예외전가 throws Exception
  • System.in.read() - 단일 문자 입력
    • 입력 Buffer로부터 Data를 ASCII 코드 만큼 입력 받음
    • int 형으로 입력 받으므로 적절한 형 변환이 필요함
  • Buffer
    • CPU에서 처리될 작업들이 기다림
    • 작업처리가 순차적으로 처리되는 것이 아님
    • 사용자입력(우선순위 높은 작업) -> CPU의 스케줄링이 운영체제에 의해 변경
    • 입출력 인터럽트(I/O Interrupt) 신호 -> CPU작업 일시정지 -> 스케줄링 재조정
    • 모든 입력하나당 CPU가 계속 멈추는 것은 비효율적
    • 중간의 램메모리영역(Buffer)에 입력 데이터 저장
    • (ex. Enter를 눌렀을 때) 인터럽트, 일괄처리
    • CPU가 중단되는 회수를 줄여줌
    • 보안장치, 완충장치

System.in.read()
\r\n 처리 , Buffer의 존재를 알고 있자

 


  • Scanner : 문자열, 숫자를 입력 받기 위한 코드

Scanner

  • 불린과 스트링은 형변환(캐스팅) 안된다.

Integer.parseInt


  • 코드 축약 : 장단점이 있다.
    • 짧아지는 대신 가독성 떨어짐
    • 변수를 다른곳에서 활용해야 하는 경우 불리

코드 축약

 


Quiz. 성적을 입력한 뒤 합계와 평균을 출력

  • int -> Integer.parseInt
  • long -> long.parseLong
  • float -> Float.parseFloat
  • double -> Double.parseDouble

Quiz. 대문자를 입력받아 소문자로 변환하여 출력


  • 제어문
    • 순차적인 흐름을 조건에 따라 통제하는 명령
    • 사용자의 요구에 따라 프로그램이 동작
    • 내려가던 흐름이 돌아가거나 특정 코드 건너뛰기, 분기점
  • 제어문의 종류
    • 조건 : if - else
    • 반복 : while, do while, for
    • 선택 : switch - case
    • 흐름 변경 : continue, break
  • 알고리즘 공부를 병행하면 좋다. (대기업 공채, 외국계)
  • 제어문의 구조 : 키워드(){}

 

  • if - else 문
    • if( 조건문 ) { 실행문1; }
    • 조건문 : 연산결과가 boolean값으로 나오는 것들 (관계연산자, 논리연산자)
    • 조건문이 true가 나오면 중괄호 안 실행, false는 중괄호 건너뜀
    • else if : 종속성 문법
    • else는 소괄호 없이

  • Ctrl + A 전체선택
  • Ctrl + I 자동들여쓰기



  • while문
    • 사용자가 원하는 만큼 명령들을 여러 번 실행하는 제어구조.
    • 특정 조건이 만족되는 동안 명령을 계속적으로 실행한다.
  • while문의 문법
    • 식이 참일 경우에만 루프 처리를 반복한다. 
    • while(조건문){실행문1;}
    • 조건문이 true일 동안 실행해라 ( while ~동안)
    • 무한루프 : 버그가 아님

while문의 문법

 


while문을 사용하여 1~10까지 출력

  • int i; 선언
    • stack메모리에 저장 , stack메모리는 운영체제도 사용
    • 선언만 해놓으면 운영체제가 사용했던 쓰레기값이 들어간다.
    • 자바에서는 초기값을 넣어 쓰레기값을 밀어내야함
  • 에러
    1. 컴파일에러 : 번역과정에서 감지되는 에러, 에러메세지를 보여줌
    2. 로지컬에러 : 논리오류
  • while문 기본3요소 : 초기값, 조건, 증감

[퀴즈] While문 역순, 줄 바꾸기

 


[퀴즈] 입력받은 회수만큼 출력