본문 바로가기

자바(JAVA)
[자바(Java)] 제어문 - 조건문

//프로그램
- 수많은 문장의 집합
- 명령어들이 미리 정해진 제어의 흐름에 따라 실행(위 -> 아래)

<프로그램 작성 순서>
1. 변수 선언
2. 변수를 이용하여 실행 구문 작성
3. 결과 출력


//제어문
    - 그 흐름을 통제하는 명령어
    - 조건 제어, 반복 제어, 분기 제어
    - 알고리즘

    1. 조건문
        - 개발자가 조건을 제시한 후 프로그램 흐름을 제어한다.
        a. if
        b. switch

    2. 반복문
        - 특정 코드를 개발자가 원하는 횟수만큼 반복 실행한다.
        a. for
        b. while
        c. do while

    3. 분기문
        - 개발자가 코드의 흐름을 원하는 곳으로 이동한다.
        a. break
        b. continue
        c. goto(JDK 1.5 폐기)


//조건문

조건문1

package ex01.sample01;

public class Ex01_1 {

	public static void main(String[] args) {
		int a = 80;
		if(a < 50) //조건문
			System.out.println("참입니다."); //참일 때 실행되는 문장
		else {
			System.out.println("거짓입니다.");
		}

	}
 
}

조건문2

package ex01.sample01;

import java.util.Scanner;
public class Ex01_1 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num;
		
		System.out.print("정수를 입력해 주세요 : ");
		num = sc.nextInt(); //정수를 입력 받는 메서드		
		
		if(num % 2 == 0)
			System.out.println("입력하신 숫자는 짝수입니다.");
		else
			System.out.println("입력하신 숫자는 홀수입니다.");
	}
  
}

중첩 이프문

package ex01.sample01;

import java.util.Scanner;
public class Ex01_1 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num; // 사용자가 입력하는 숫자를 저장하는 변수
		
		System.out.print("정수를 입력해 주세요 : ");
		num = sc.nextInt(); //정수를 입력 받는 메서드		
		
		if(num >= 90)
			System.out.println("A학점입니다.");
		else if(num>= 80)
			System.out.println("B학점입니다.");
		else if(num>= 70)
			System.out.println("C학점입니다.");
		else if(num>= 60)
			System.out.println("D학점입니다.");
		else
			System.out.println("F학점입니다.");
		
	}
  
}

!Quiz - 사칙연산!

1. 첫 번째 정수를 입력
2. 계산할 연산식을 입력
3. 두 번째 정수를 입력
4. '첫 번째 정수' '연산자' '두 번째 정수' = '계산 결과'입니다. 출력

사칙연산

package ex01.sample01;

import java.util.Scanner;

public class Ex01_2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1, num2;
		char ch;
		
		System.out.printf("첫 번째 정수를 입력해 주세요 : ");
		num1 = sc.nextInt(); 
		
		System.out.printf("+, -, *, / 중 하나를 입력해 주세요 : ");
		ch = sc.next().charAt(0);
		//next()는 문자열을 입력받게 되어있다. 문자열에서 첫 번째 값만 뽑아오도록 명령
		
		System.out.printf("두 번째 정수를 입력해 주세요 : ");
		num2 = sc.nextInt(); 
		
		if(ch == '+')
			System.out.printf("%d + %d = %d입니다.\n", num1, num2, num1 + num2);
		if(ch == '-')
			System.out.printf("%d - %d = %d입니다.\n", num1, num2, num1 - num2);
		if(ch == '*')
			System.out.printf("%d * %d = %d입니다.\n", num1, num2, num1 * num2);
		if(ch == '/')
			System.out.printf("%d / %d = %d입니다.\n", num1, num2, num1 / num2);
				
	}

}

// switch~ case

  switch(정수 값, 문자) {
  case 정수 값 1/ '1', ' A':
   문장;
   break;
   
  case 정수값 2"
   문장;
   break;
   
  case 정수 값 3:
   문장;
   break;
   
  case 정수 값 n:
   
  default:
    문장;
  }

switch~case...

package ex01.sample02;

import java.util.Scanner;

public class Ex02_1 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num;
		
		System.out.printf("1~4 중에 하나를 선택해 주세요 : ");
		num = sc.nextInt(); 
		
		switch(num) {
		case 1:
			System.out.printf("1번을 선택하셨습니다.\n");
			break;
		case 2:
			System.out.printf("2번을 선택하셨습니다.\n");
			break;
		case 3:
			System.out.printf("3번을 선택하셨습니다.\n");
			break;
		case 4:
			System.out.printf("4번을 선택하셨습니다.\n");
			break;
		default: //1~4외의 숫자를 선택했을 경우
			System.out.printf("잘못 선택하셨습니다.\n");
			break;
					
		} //블럭문 (스쿠프는 c++에서 주로 사용하는 용어)