JAVA

Java Scanner,출력문,조건문, 반복문

서묘_ 2021. 11. 25. 22:07

< Scanner 클래스 >

입력한 값을 읽어 들이는 기능을 가진 클래스!

 

Scanner s = new Scanner(System.in) //메모리에 스캐너 객체를 생성한다.


s.next() : 엔터키를 누르는 순간 입력한 값을 String타입으로 읽어 들임,
(공백이 있으면 공백 앞까지. ABC DEF -> ABC)


s.nextLine() 엔터키를 누르는 순간 입력한 전체 값을 String타입으로 읽어 들임
(공백이 있어도 다 가져옴. ABC DEF -> ABC DEF)


s.nextInt(): 엔터키를 누르는 순간 입력한 숫자값을 int타입으로 읽어 들임


s.nextDouble():입력한 실수 값을 double타입으로 읽어 들임

 

 

< 출력문 >

System.out.print() : ()에 전달받은 값 출력. 하나만 넣을 수 있음.


System.out.println() : ()에 전달받은 값 출력 후 줄 바꿈(커서가 한 칸 내려감)

( 이클립스에서 sysout까지 쓰고 ctrl+space 누르면 자동완성☆ )
ln: \n Line Feed 커서의 현재 위치에서 바로 아래로 이동
0개(빈칸, 출력 내용 없이 줄만 바꿔준다.)나 1개의 데이터를 받아서 출력한다.

 

System.out.printf("서식",...n) : format. 서식에 맞춰 데이터 넣고 출력함

%d :정수
%s : 문자열
%f : 실수

ex) int a = 1;

String str = 김자바;

System.out.printf("%d번 학생은 %s입니다.", a, str);

-> 1번 학생은 김자바입니다. 출력

 

 

< 조건문 >

 

조건에 따라 수행문이 실행되도록 프로그래밍하는 것이다.

 

if 문

if - else 문

if - else if - else문

if와 else if 에는 (조건식)을 지정해 줘야 한다.

else는 그 외의 경우에 실행된다.

 

if는 필수고 else if와 else는 선택이라는 거다.

else if는 여러 개 쓸 수 있다.

(수행문이 한 줄이라면 {} 생략 가능하다.)

 

if (조건식1) {

             수행문1;

}else if(조건식2){

             수행문2;

}else if(조건식3){

             수행문3;

}else{

             수행문4;

}

처음 조건식1이 true면 수행문1만 수행하고 if문 종료 그 뒤에 else if, else는 다 실행되지 않는다.

처음 조건식1이 false면 다음 조건식으로 넘어간다. 그 뒤로도 동일

 

ex)

int score = 70; 

int grade;

 

if ( score >= 90 ) {

    grade = 1;

}else if( score >= 80 ){

    grade = 2;

}else if( score >= 70 ){

    grade = 3;

}else{

    grade = 4;

}

점수에 따라 등급을 정하는 if문을 만들어 봤다.

점수가 90점 이상이면 1등급, 80점 이상이면 2등급, 70점 이상이면 3등급, 그 외는 4등급.

 

if문은 위에서부터 실행되기 때문에 첫  if조건문이 false라면 다음 조건문인 else if로 넘어간다.

첫  if조건문인 ( score >= 90 )이 false라면 89 이하라는 것. 

즉 2번째 조건인 else if( score >= 80 )은 80 이상 89 이하가 된다.

 

점수가 70이니 세 번째 else if( score >= 70 ) 조건이 true가 되고

grade = 3; 이라는 수행문이 수행되며, 그 뒤는 실행하지 않는다.

 

* 조건 연산자를 저번 글에 썼었다. 간단한 조건문은 조건 연산자로 구현할 수 있다.

ex) if ( a > b )

max = a;

else

max = b;

4줄이나 잡아먹는 이런 간단한 if문은

 

max = ( a > b ) ? a : b;

조건 연산자 단 한 줄로 줄일 수 도 있는 것.

 

 

switch - case 문

조건식의 결과 값이 정수 또는 문자열이고 그 경우에 따라 수행문이 결정될 때 사용한다.

 

switch(변수){

  case 값1 : 수행문1;

            break;

  case 값2 : 수행문2;

            break;

  case 값3 : 수행문3;

            break;

  default : 수행문 4;

}

 

변수의 값이 값1이면 수행문1 실행.

값 1,2,3 외의 값이면 default 수행문 실행.

 

if문처럼 true값일 때 바로 멈추는 게 아니라서

맞는 case를 찾아서 수행할 때 종료될 수 있도록 수행문마다 break;를 걸어줘야 한다.

걸지 않는 경우 출력은 잘 나오겠지만 불필요한 연산을 프로그램이 하고 있겠지.. = 느려지겠지!! = 좋은 코드가 아니다.

 

* Java 7부터 case값에 String사용 가능하다.

 

 

 

 

< 반복문 > 

 

조건이 만족할 때까지 수행문을 반복적으로 수행한다.

조건문과 반복 가능 여부를 정확하게 코딩해줘야 한다.

 

while 문

조건식이 true인 동안 수행문을 반복한다.

하나의 조건에 대해 반복 수행할 때 주로 사용

 

while(조건식) {

  수행문1;

  ...

}

 

조건식이 true인 동안 수행문 1을 반복하고 false가 되는 순간 while문은 끝나고 다음 줄로 넘어간다.

 

 

do while 문

수행문을 한번 무조건 수행하고 나서 조건식이 true인 경우 수행문을 반복한다.

수행문이 반드시 한번 이상 수행돼야 하는 경우에 사용한다.

 

do{

  수행문1;

  ...

}while(조건식){

  수행문2;

  ...

}

 

do 수행문1은 무조건 수행하고 while 조건식이 true면 수행문2를 반복하고 false가 되는 순간 while문 끝나고 다음 줄로

 

 

for 문

반복문 중 가장 많이 사용한다고 한다! 꼭 기억해 두자.

특정 범위의 수, 횟수가 조건인 경우에 주로 사용한다.

 

for( 초기화식 ; 조건식 ; 증감식 ){

  수행문;

}

 

초기화식은 처음 한번만 실행된다. 조건식이 충족되면 수행문을 수행하고 증감식이 수행되며 조건식부터 반복한다.

 

초기화식 1회 실행

조건식 true > 수행문 수행 > 증감식 수행 > 조건식 확인  반복

조건식 false > for문 종료

 

ex) int num;

for ( num = 1; num <= 3; num++){

  System.out.println(num);

}

 

int타입 변수 num을 1로 초기화시킨다.

1 <= 3 true  >  1 출력  > 1을 증가시킨다 

2 <= 3 true  >  2 출력  > 1을 증가시킨다 

3 <= 3 true  >  3 출력  > 1을 증가시킨다 

4 <= 3 false > for문 종료

 

* 무한 반복시키기

while( ture ){ 수행문; }

do{ 수행문; }while( ture ){ 수행문; }

for(;;){ 수행문; }

 

* 중첩 반복문

반복문 내부에 또 반복문을 사용할 수 있다.

 

구구단 예제가 많이 나온다

for(dan = 2; dan <= 9; dan++){ //2단부터 9단까지 반복하는 외부 반복문

    for(num = 1; num <= 9; num++){ //각 단에서 1~9 곱하기를 반복하는 내부 반복문

      System.out.println(dan + "x" + num + "=" + dan*num);

    }

  System.out.println(); //빈줄 출력 한 줄 띄울 때 사용

}

 

* 출력문에 변수와 문자열, 문자열과 문자열을 이어서 쓸 때 + 사용

 

 

* continue 문

반복문 실행 중 continue문을 만나면 이후 수행문을 수행하지 않고

조건식이나 증감식을 수행한다. 즉 건너뛰기!

반복문 내부에 조건문과 함께 사용하는 편.

 

* break 문

반복문 실행 중 break문을 만나면 반복문 종료.

중첩된 반복문 안에 있는 경우 가장 가까운 반복문 하나만 종료.

반복문 내부에 조건문과 함께 사용하는 편.

 

 

 

 

스캐너 출력문은 기본!!!

if와 for문도 외우자 정말 많이 쓴다고 한다!