본문 바로가기

공부/JAVA

[JAVA STUDY] DAY2. 조건문 / Random함수 / 반복문 / Scanner

728x90

 

DAY2. 키워드

  1. 조건문 (if, switch)
  2. random함수
  3. 반복문 (for, while, do-while)
  4. Scanner
  • 줄 정돈 : ctrl+shift+f
  • 단축키 확인 : Help > Show Active Keybindings

1-1. 조건식

  • true또는 false값을 산출할 수 있는 연산식
  • boolean 변수
  • 조건식이 true이면 블록 실행하고 flase이면 블록 실행하지 않음

1-2. if문

if문 작성 요령

  • 조건식의 결과에 따라 { } 블록을 실행할지 결정할 때 사용한다.
  • 실행문이 하나면 블록을 쓰지 않아도 된다.
private static void ifTest() {
    int score = 50;
    //조건문의 실행문이 여러개라면 반드시 괄호를 사용한다.
    if(score>=90) {
	    System.out.println("합격");
	    System.out.println("축하합니다~");
    }
	
    if (score>=90) 
	    System.out.println("합격");
	    System.out.println("축하합니다~"); //해당 실행문은 if문 안의 실행문이 아니다.
	
    System.out.println("if문 끝~!");
	
    //삼항연산자 (조건 ? 조건에 맞을 때 : 조건에 맞지 않을 때)
    System.out.println(score >= 90 ? "합격" : "불합격");
}

1-3. if-else문

if-else문 작성 요령

  • if문의 조건식이 참이면 if문 블록 안의 실행문을 실행하고, 그렇지 않으면 else문의 실행문을 실행한다.
private static void ifElseTest() {
	int score = 100;
	if(score >= 90) { 
		//조건의 결과가 참인 경우 실행
		System.out.println("합격");
	}else {
		//조건의 결과가 거짓인 경우 실행
		System.out.println("불합격");
	}
}

1-4. if-else if-else 문

if-else if-else문 작성 요령

  • 조건에 맞는 if 또는 else if문 안의 실행문을 실행하며, 아무 조건식에도 맞지 않을 경우 else문의 실행문을 실행한다.

1-5. Switch문

switch문 작성 요령

  • switch문의 변수 자리에는 변수나 연산식이 들어갈 수 있다.
  • 변수나 연산식의 값에 따라 case의 조건에 맞으면 해당 case의 실행문이 실행된다.
  • case 실행문 끝에는 반드시 break가 있어야 한다.
  • 조건에 맞는 식이 없을 경우 default의 실행문을 실행한다.

 

2. Random 함수

  • Math : 수학공식에서 필요한 기능들을 모아놓은 class로 java.lang패키지에 들어있다.
  • 0.0 <= Math.random() < 1.0
  • 0보다 크고 1보다 작은 double타입의 난수를 리턴한다.
System.out.println(Math.random()); //0<=random<1
System.out.println((int)(Math.random() * 10)); //0<=random<10
System.out.println((int)(Math.random() * 10 + 1)); //1<=random<=10
System.out.println((int)(Math.random() * 45 + 1)); //1<=random<=45 (로또)

 

3-1. for문

for문 작성 요령

  1. 초기값 설정
  2. 조건 검사
  3. for문 안의 실행문 수행
  4. 증감 수행
  5. 2번 으로 이동
  • 반복 횟수를 알고 있을 때 주로 사용하는 반복문이다.
  • 초기화식, 조건식, 증감식이 비어있는 for문은 무한루프를 돈다.

3-2. while문

while문 작성 요령

  • 조건식이 true일 경우에 계속해서 반복한다.
  • while문 안이 항상 참인 조건이라면 무한루프를 돈다.

3-3. do-while문

do-while문 작성 요령

  • while문의 조건식에 따라 반복 여부를 결정하는 것은 while문과 동일하나, 조건식을 먼저 검사하지 않고 { } 블록을 무조건 한 번 실행 한 후 조건을 검사하여 반복 여부를 결정한다.

3-4. 반복문에 이름 붙이기

public static void main(String[] args) {		
    //break : 중단
    // ㄴ 가장 가까운 반복문을 빠져나감
    // ㄴ 중첩반복문을 빠지려면 반복문에 이름을 주면 됨
    AA:for(int dan=2; dan<=9; dan++) {
        System.out.println("-------" + dan + "-------");
        for(int gop=1; gop<=9; gop++) {
            if(dan==4) break AA;
            System.out.println(dan + "*" + gop);
        }
    }
}

private static void test2() {
    AA:for(int j=1; j<=3; j++) {
        for(int i=1; i<=10; i++) {
            if(i==3) continue AA; //아래문장들을 무시하고 반복문 계속 실행

            System.out.println(i + "--" + j);
            System.out.println("*******");
        } 
    }
}
  • break나 continue는 가장 가까운 반복문을 중단 또는 실행하기에 반복문 앞에 이름을 붙이면 해당 반복문을 중단 또는 실행할 수 있다.

 

4. Scanner

  • 읽은 바이트를 문자, 문자열, 정수, 실수, bool 와 같은 타입으로 변환하여 리턴하는 클래스
  • java.util.Scanner을 import하여야 사용 가능
import java.util.Scanner;

Scanner sc = new Scanner(System.in);
  • System.in을 통해 키보드의 입력 값을 읽을 수 있다.
private static void method1() {
    Scanner sc = new Scanner(System.in);
    System.out.print("이름 >> ");
    String name = sc.next(); //한단어
    System.out.print("나이 >> ");
    int age = sc.nextInt(); //숫자
    //정수를 입력하고 엔터를 누르면 정수값은 리턴 되었지만
    //Enter값은 그대로 남아 있어 
    //nextLine이 Enter값을 읽는 오류가 발생하기 때문에
    //nextLine대신 next를 사용하거나 
    //nextLine 메소드를 한번 더 써줘서 Enter값을 없애줘야한다.
    sc.nextLine();
    System.out.println("주소 >> ");
    String addr = sc.nextLine(); //한 줄
    System.out.println(name + "의 나이는 " + age);
    System.out.println("주소는 " + addr);
}
더보기

nextInt() 다음에 nextLine()을 통해 입력받는 경우 nextInt()는 정수값만 가져가고 Enter값을 두고 가기에 nextLine()이 바로 Enter값만 읽어버리는 오류가 발생한다.

오류가 발생하지 않기 위해 nextLine()을 한번 더 사용하거나 next()를 사용을 하도록 한다.

728x90
반응형