JAVA/자바 이론 / / 2021. 4. 11. 22:26

Java | 2-2 자바 기본 프로그래밍

02. if 문, switch 문

 

# 조건문 - if문

º 단순 if 문

- if 다음의 괄호 안에는 조건식(논리형 변수나 논리 연산)

- 조건식의 값

 -> true인 경우, if문을 벗어나 다음 문장이 실행된다.

 -> false의 경우에는 if 다음의 문장이 실행되지 않고 if 문을 빠져 나온다.

 

ex) 시험 점수가 80점 이상이면 합격 판별을 하는 프로그램

import java.util.Scanner;
public class SuccessOrFail {
	public static void main (String[] args) {
    	Scanner in = new Scanner(System.in);
        
        System.out.print("점수를 입력하시오: ");
        int score = in.nextInt();
        if (score >= 80)
        	System.out.println("축하합니다! 합격입니다.");
     }
}

# 조건문 - if-else

º if-else 문

- 조건식이 true면 실행문장 1 실행 후 if-else문을 벗어남

- false인 경우에 실행문장2 실행 후, if-else문을 벗어남

 

ex) 입력된 수가 3의 배수인지 판별하는 프로그램을 작성하시오.

import java.util.Scanner;
public class MultipleOfThree {
	public static void main (String[] args) {
    	Scanner in = new Scanner(System.in);
        
        System.out.print("수를 입력하시오: ");
        int number = in.nextInt();
        
        if (number % 3 == 0)
        	System.out.println("3의 배수입니다.");
        else 
        	System.out.println("3의 배수가 아닙니다.");
      }
}

# 조건문 - 다중 if

º 다중 if문

- 실행 문장이 다시 if문 또는 if-else문을 포함하는 경우를 말함

- else 문은 바로 전의 if 문과 짝을 이룬다.

 

ex) if-else 문을 이용하여 키보드 입력된 성적에 대해 학점을 부여하는 프로그램

import java.util.Scanner;
public class Grading {
	public static void main (String[] args) {
    	char grade;
        Scanner a = new Scanner(System.in);
        while (a.hasNext()) {   //입력된 키가 있는 경우 true 리턴. ctrl-z 키가 입력되면 false 리턴
        	int score = a.nextInt();
            if(score >= 90.0)
            	grade = 'A';
            else if(score >= 80.0)
            	grade = 'B';
            else if(score >= 70.0)
            	grade = 'C';
            else if(score >= 60.0)
            	grade = 'D';
            else
            	grade = 'F';
            System.out.println("학점은 " +grade+ "입니다.");
          }
     }
}
        	

# switch 문

º switch 문은 식과 case 문의 값과 비교

- case의 비교 값과 일치하면 해당 case문의 실행 문장 수행

-> break를 만나면 switch문을 벗어남

- case이 비교 값과 일치하는 것이 없으면 default 문 실행

 

# switch문에서 벗어나기

º switch문 내의 break문

- break 문장을 만나면 switch문을 벗어남

- 만일 case문에 break문이 없다면, 다음 case문의 실행 문장으로 실행을 계속하게 되며, 언젠가 break를 만날 때까지 계속 내려감

 

# case 문의 값

º case 문의 값의 특징

- switch 문은 식의 결과 값음 case 문과 비교

- 사용 가능한 case 문의 비교 값

-> 정수 타입 리터럴, JDK 1.7부터는 문자열 리터럴도 허용

// 잘못된 case 문
switch(a) {
	case a :       //오류. 변수 사용 안됨
    case a > 3 :   //오류. 수식 안됨
    case a == 1 :  //오류. 수식 안됨
}

ex) 앞의 다중 if문을 이용한 성적 분류 프로그램을 switch문으로 바꾸시오.

import java.util.Scanner;
public class Gradeing2 {
	public static void main (String[] args) {
    	char grade;
        Scanner a = new Scanner(System.in);
        while (a.hasNext()) {
        	int score = a.nextInt();
            switch (score/10) {
            	case 10:
                case 9:
                	grade = 'A';
                    break;
                case 8:
                	grade = 'B';
                    break;
                case 7:
                	grade = 'C';
                    break;
                case 6:
                	grade = 'D';
                    break;
                default :
                	grade = 'F';
            }
            System.out.println("학점은 " +grade+ "입니다");
        }
    }
}      

 

# 요약

  • 자바 프로그램은 여러 개의 클래스로 이루어지며, class 키워드로 클래스를 선언함.
  • 클래스 내에는 메소드(멤버 함수), 필드(멤버 변수), 상수(final로 선언된 필드)를 포함하여 클래스 내에 캡슐화되어야 함.
  • 식별자란 클래스, 변수, 상수, 메소드에 붙이는 이름으로서 자바에는 식별자를 만드는 규칙이 있음.
  • 변수는 프로그램에서 데이터를 저장하는 공간이며, 프로그램 실행에 따라 값이 변함.
  • 자바에서 다룰 수 있는 데이터의 타입은 boolean, char, byte, short, int, long, float, double의 8가지와 클래스에 대한 레퍼런스, 인터페이스에 대한 레퍼런스, 배열에 대한 레퍼런스의 3가지 레퍼런스 타입이 있음.
  • 레퍼런스는 C/C++의 포인터와 비슷하게 객체를 가리키지만, 실제 메모리 주소를 가지는 것은 아님.
  •  문자열 타입은 String 클래스 타입으로 자바의 기본 타입이 아님.
  • 작은 데이터 타입에서 큰 타입으로 타입 변환은 문제 없이 자동으로 일어남.
  • 큰 데이터 타입에서 작은 타입으로 타입 변환은 개발자가 명시적으로 지정해야 하며 데이터 손실이 발생할 수 있음.
  • 기본 타입의 값이나 문자열을 화면에 출력할 때 System.out.println()나 System.out.print()문을 사용하면 됨.
  • System.in은 키보드로부터 직접 입력받는 자바 표준 입력 스트림 객체로서, 입력된 키에 해당하는 바이트 정보를 리턴
  • Scanner 클래스의 객체를 생성하여 자바에서 키 입력을 쉽게 할 수 있음.
  • Scanner 클래스는 입력된 키를 숫자, 문자, 문자열 등 원하는 타입으로 변환하여 제공
Scanner scanner = new Scanner(System.in);
  • Scanner 클래스를 사용하려면 Scanner 클래스의 전체 경로명을 알려주는 import java.util.Scannrt; 문이 필요
  • 연산자는 C/C++와 거의 동일하게 산술/증감/비교/시프트/논리/조건/대입 연산자가 있음.
  • 조건문에는 단순 if문, if-else문, 다중 if-else문, 중첩 if-else문, switch문이 있으며, switch문은 값에 따라 여러 실행 경로로 분기하는 경우에 적합
  • switch 문의 case에 break; 문이 생략되면 다음 break 문을 만날 때까지 계속 실행됨.
  • case문의 값으로는 리터럴(정수, 문자, 문자열)만 사용 가능하며, 변수나 식은 사용할 수 없음.

'JAVA > 자바 이론' 카테고리의 다른 글

Java | 3-2 예외 처리  (0) 2021.04.12
Java | 3-1 반복문과 배열  (0) 2021.04.12
Java | 2-1 자바 기본 프로그래밍  (0) 2021.04.11
Java | 1-2 자바 기본 프로그래밍  (0) 2021.04.11
Java | 1-1 자바 기본 프로그래밍  (0) 2021.04.11
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유