Salted Caramel

[수업 3일차] 2021.08.04/ 조건문(if,if~else...), 제어문 본문

coding/[2021.08.02~2022.01.24] 수업복습

[수업 3일차] 2021.08.04/ 조건문(if,if~else...), 제어문

꽃무늬라떼 2021. 8. 4. 21:27

자바 래퍼 클래스(wrapper class) -2/3정도 수업이 나가면 알게 되는 개념이다.

: 키보드를 입력 받는 것은 문자로 받기 때문에 숫자로 변환을 해주는 작업이 필요하다.

ex) Integer.parseInt


  • 03_Operator-Exam_02
package sist;

/*
 * [문제] 임의의 숫자 하나를 키보드로부터 입력을 받아서 
 *       그 숫자의제곱근과 세제곱근을 구해 보자.
 */


public class Exam_02 {

	public static void main(String[] args) {
		
		//1. 임의의 숫자 하나를 키보드로부터 입력을 받자.
		
		int su = Integer.parseInt(args[0]);
		
		System.out.println("입력받은 정수 >> " + su);
		
		//2. 임의의 숫자의 제곱근을 구해야 한다. 
		//   공식) 임의의 숫자 * 임의의 숫자 
		System.out.println(su + "의 제곱근 >>> " + (su * su));
		
		//3. 임의의 숫자의 세제곱근을 구해야한다. 
	    //   공식) 임의의 숫자 * 임의의 숫자 * 임의의 숫자
		System.out.println(su + "의 세제곱근 >>> " + (su * su* su));
	}

}

  • 03_Operator-Exam_03
package sist;

/* 
 * [문제] 키보드로부터 상품과 해당 상품의 단가, 수량, 입금액을 
 *       입력을 받아서 상품금액(단가*수량)과 부가세액, 상품총액과 
 *       잔액을 구해보자   
 */

/*
 * 변수는 8개가 필요한것으로 보인다.
 */

public class Exam_03 {

	public static void main(String[] args) {
		
		// 1-1. 키보드로부터 상품명을 입력을 받자. 
		String product = args[0];
		
		// 1-2. 키보드로부터 상품의 단가를 입력을 받자. 
		int danga = Integer.parseInt(args[1]);
		// 1-3. 키보드로부터 상품의 수량을 입력을 받자. 
		int amount = Integer.parseInt(args[2]);
		
		// 1-4. 키보드로부터 입금액을 입력을 받자.
		int money = Integer.parseInt(args[3]);
		
		// 2. 상품의 금액(단가 * 수량)을 계산해 보자. 
		int sum = danga * amount;  //sum 변수가 상품의 금액이 됨
		
		// 3. 상품금액의 부가세액을 계산을 해 보자. 
		//    공식) 상품금액 * 0.1
		int vat = (int)(sum * 0.1);
		
		// 4. 상품의 총금액을 계산해 보자. 
		//   공식) 상품금액 + 부가세액
		int total = sum + vat;
		
		// 5. 잔액을 계산해 보자. 
		//   공식) 입금액 - 상품의 총금액(상품금액 + 부가세액)
		int change = money - total;
		
		// 6. 화면에 해당 내역을 출력해보자.
		System.out.println("상품명 : " + product);
		System.out.printf("상품단가: %,d원\n", danga);
		System.out.println("상품수량: " + amount);
		System.out.printf("입금액 : %,d원\n", money);
		System.out.printf("상품금액 : %,d원\n", sum);
		System.out.printf("부가세액 : %,d원\n", vat);
		System.out.printf("총금액 : %,d원\n", total);
		System.out.printf("잔액 : %,d원\n", change);
		

	}

}

  • 03_Operator-Exam_04
package sist;

/*
 * [문제] 키보드로부터 임의의 숫자 4개를 입력받아서 
 *       각각의 화폐 매수가 몇 장이 필요한지 코딩을 통해서 
 *       구하여 화면에 출력해 보세요.
 */

public class Exam_04 {

	public static void main(String[] args) {

		// 1. 키보드로부터 임의의 숫자 4자리를 입력을 받자.
		int su = Integer.parseInt(args[0]);    //8792
		
		// 2. 각각의 화폐단위 변수를 설정을 하자. 
		int oc, c, ob, b, os, s, o, i, res;   //res: 나머지가 들어가는변수 
		
		// 3. 화폐 매수를 계산을 하자.
		oc = su / 5000;   //오천원의 몫  ==> 1
		res = su % 5000;  // 나머지 ==> 3792
		
		c = res / 1000;   // 천원의 몫 ==> 3
		res %= 1000;      //res = res % 1000; 나머지 ==> 792
		
		ob = res / 500;   //오백원의 몫 ==> 1
		res %= 500;       // 나머지 ==> 292
		
		b = res / 100;    //백원의 몫 ==> 2
		res %= 100;       //나머지 ==> 92
		
		os = res / 50;    //오십원의 몫 ==> 1
		res %= 50;        //나머지 ==> 42
		
		s = res / 10;     //십원의 몫 ==> 4
		res %= 10;        // 나머지 ==> 2
		
		o = res / 5;     //오원의 몫 ==> 0
		res %= 5;        // 나머지 ==> 2
		
		i = res / 1;     //일원의 몫 ==> 2
		res %= 1;        // 나머지 ==> 0
		
		
		// 4. 화면에 출력해 보자. 
	
		System.out.println("입력 받은 숫자 : " + su);
		System.out.println("오천원 지폐 : " + oc + "장");
		System.out.println("천원 지폐 : " + c + "장");
		System.out.println("오백원 동전 : " + ob + "개");
		System.out.println("백원 동전 : " + b + "개");
		System.out.println("오십원 동전 : " + os + "개");
		System.out.println("십원 동전 : " + s + "개");
		System.out.println("오원 동전 : " + o + "개");
		System.out.println("일원 동전 : " + i + "개");
		
		

	}

}

  • 04_Control-Ex01
/*
 * 제어문(Control)>
 * - 프로그램의 흐름을 제어하는 명령문.
 * - 원래는 main() 메서드의 시작 중괄호({) 에서부터
 *   끝 중괄호(}) 까지 위에서 아래로 순차적으로 실행하는 흐름을 가지고 있음.
 *   - 제어문은 이러한 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해 주는 것을 말함.
 *   - 모든 제어문의 실행 결과는 boolean형(true / false)로 나옴. 
 *   
 * 제어문의 종류
 * 1. 분기문(조건문)
 *   - if문, if~else문, 다중 if~else문, switch~case문
 * 2. 반복문
 *   - while문, do~while문, for문
 * 3. 기타(보조 제어문)
 *   - break, continue 명령어
 *   
 */
/*
 * if문 - 분기문(조건문)
 * - 조건을 제시하여 참이면 실행하고, 거짓이면 무시하는 문장.
 * - 조건식의 결과값은 boolean형만 올 수 있음.
 * - 실행문이 한 줄이면 { } (중광호) 생략 가능함. 하지만
 *   실행문이 두 줄 이상이면 반드시 {  } (중광호) 안에 기재해야함. 
 *   형식)
 *          if(조건식) {
 *              조건식이 참인 경우 실행 문장;
 *          }
package sist;

/*
 * 제어문(Control)>
 * - 프로그램의 흐름을 제어하는 명령문.
 * - 원래는 main() 메서드의 시작 중괄호({) 에서부터
 *   끝 중괄호(}) 까지 위에서 아래로 순차적으로 실행하는 흐름을 가지고 있음.
 *   - 제어문은 이러한 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해 주는 것을 말함.
 *   - 모든 제어문의 실행 결과는 boolean형(true / false)로 나옴. 
 *   
 * 제어문의 종류
 * 1. 분기문(조건문)
 *   - if문, if~else문, 다중 if~else문, switch~case문
 * 2. 반복문
 *   - while문, do~while문, for문
 * 3. 기타(보조 제어문)
 *   - break, continue 명령어
 *   
 */
/*
 * if문 - 분기문(조건문)
 * - 조건을 제시하여 참이면 실행하고, 거짓이면 무시하는 문장.
 * - 조건식의 결과값은 boolean형만 올 수 있음.
 * - 실행문이 한 줄이면 { } (중광호) 생략 가능함. 하지만
 *   실행문이 두 줄 이상이면 반드시 {  } (중광호) 안에 기재해야함. 
 *   형식)
 *          if(조건식) {
 *              조건식이 참인 경우 실행 문장;
 *          }
 */

public class Ex01 {

	public static void main(String[] args) {


		System.out.println("프로그램 시작");
		
		int su = 5;
		
		if(su > 10) 
			System.out.println("조건식이 참입니다.");
			System.out.println("10 이하의 숫자입니다.");
			
			
		System.out.println("프로그램 종료");
		
		
		
		
		
	}

}

 

실행문이 한 줄인경우 괄호{}를 생략할 수 있지만 가능하면 생략하지 않고 사용하는 것이 바람직하다.

//방법1

if(su < 10) 
System.out.println("조건식이 참입니다."); 

//방법2

if(su < 10)  {
System.out.println("조건식이 참입니다.");

}

 

int su = 5;

if(su > 10) 
System.out.println("조건식이 참입니다.");    //실행하지 않고 생략됨

 

밖에 있는 문장이라고 생각되서 
블록으로 설정해야지 두개 다 if문에 속해서 한꺼번에 출력된다.

 


  • 04_Control-Ex02

if 문에 범위에 들어가지 않는 거짓의 결과의 경우

== > if문은 출력되지 않고 생략된다.

if 문에 범위에 들어가는 참인 결과의 경우

== > if문은 출력

 

if 문에 범위에 들어가지 않는 거짓의 결과의 경우 if문은 출력되지 않고 생략된다.
if 문에 범위에 들어가는 참인 결과의 경우 if문은 출력


  • 04_Control-Ex03
Integer.parseInt(JOptionPane.showInputDialog( ));

 

 

package sist;

import javax.swing.JOptionPane;

/*
 * 키보드로 입력 받은 정수 값이 5로 나누어서 떨어지면
 * " 이 정수는 5로 나누어집니다." 라고 출력해 보자. 
 */

public class Ex03 {

	public static void main(String[] args) {
		
		System.out.println("프로그램 시작");
		
		// 1. 키보드로부터 정수 하나를 입력을 받자. 
		
		int su =
				
				Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));
		
		// 2. 5로 나누어서 나머지가 0인지 확인을 하자. 
		
		if(su%5 == 0)  {
		 System.out.println("입력 받은 " + su + "는 5로 나누어집니다.");
		}
		
		System.out.println("프로그램 종료");

	}

}

 


  • 04_Control-Ex04
package sist;

import javax.swing.JOptionPane;

/*
 * [문제] 키보드로부터 입력 받은 정수가 음수이면
 * 		 "입력받은 정수는 음수입니다." 라고 
 * 		    콘솔 하면에 출력해 보세요.
 */


public class Ex04 {

	public static void main(String[] args) {
		
		System.out.println("프로그램 시작");
		
		// 1. 키보드로부터 정수값을 입력을 받자
		
		int su =
		Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));
		
		
		
		// 2. 입력받은 정수가 음수인지 조건식으로 판별을 하자   // 0보다 작은 수 인지 확인해보자
		if(su < 0) {    //음수인지 판별하는 조건식
			 System.out.println("입력 받은 " + su + "는 음수입니다.");
			}
			
		
		System.out.println("프로그램 종료");

	}

}

  • 04_Control-Ex05
package sist;

import javax.swing.JOptionPane;

/*
 * [문제] 키보드로부터 입력 받은 점수가 60점 이상이면 
 *       "합격입니다." 라는 메세지 화면에 출력해 보세요.
 */

public class Ex05 {

	public static void main(String[] args) {

		// 1. 키보드로부터 점수를 입력받기
		int score =
			Integer.parseInt(JOptionPane.showInputDialog("점수를 입력하세요"));
		
		// 2. 입력 받은 점수가 60점 이상인지 조건 체크
		
		if(score >= 60) {
			System.out.println("합격입니다.");
			
		}
		
		
	}

}

  • 04_Control-Ex06

#if~else문                                                                        

if 문도 많이 나오지만

if else 문은 별표 수십개 해야할 정도로 중요하다.

* if~else문 - 조건문(분기문)
 * - 조건식이 참이면 조건식이 참인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * - 조건식이 거짓이면 조건식이 거짓인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * 형식)
 * 			if(조건식) { 
 * 				조건식이 참임 경우 실행 문장;
 * 			}else {
 * 				조건식이 거짓인 경우 실행 문장;
 * 			}

 

package sist;

/*
 * if~else문 - 조건문(분기문)
 * - 조건식이 참이면 조건식이 참인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * - 조건식이 거짓이면 조건식이 거짓인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * 형식)
 * 			if(조건식) { 
 * 				조건식이 참임 경우 실행 문장;
 * 			}else {
 * 				조건식이 거짓인 경우 실행 문장;
 * 			}
 */


public class Ex06 {

	public static void main(String[] args) {
		
		int su = 22;
		
		if(su >= 50) {
			//조건식이 참인 경우 실행되는 문장
			System.out.println("입력 받은 수는 50 이상의 숫자입니다.");
		
		}else {
			//조건식이 거짓인 경우 실행되는 문장.
			System.out.println("입력 받은 수는 50 이하의 숫자입니다.");
		}

	}

}

 

 

참인 경우

 

 

거짓인 경우

 

package sist;

/*
 * if~else문 - 조건문(분기문)
 * - 조건식이 참이면 조건식이 참인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * - 조건식이 거짓이면 조건식이 거짓인 경우 실행문을 실행하고 
 * 	 if~else 블럭을 빠져 나옴.
 * 형식)
 * 			if(조건식) { 
 * 				조건식이 참임 경우 실행 문장;
 * 			}else {
 * 				조건식이 거짓인 경우 실행 문장;
 * 			}
 */


public class Ex06 {

	public static void main(String[] args) {
		
		int su = 22;
		
		if(su >= 50) {
			//조건식이 참인 경우 실행되는 문장
			System.out.println("입력 받은 수는 50 이상의 숫자입니다.");
		
		}else {
			//조건식이 거짓인 경우 실행되는 문장.
			System.out.println("입력 받은 수는 50 이하의 숫자입니다.");
		}

	}

}

 

 


  • 04_Control-Ex07

 

package sist;

import javax.swing.JOptionPane;

/*
 * 키보드로부터 입력을 받은 정수값을 5로 나누어서 0으로 떨어지면
 * " 이 정수는 5로 나누어집니다." 라고 출력을 하고, 그렇지 않으면 
 * " 이 정수는 5로 나누어지지 않습니다." 라고 화면에 출력해보세요.
 * 단, 음수값이 입력이 되면 "음수 값이 입력 되었습니다." 라고 출력해 보세요.
 */


public class Ex07 {

	public static void main(String[] args) {

		//1. 키보드로부터 정수를 입력을 받자.
		int num =
		Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));
		
		//2. 입력받은 정수가 양수인지 혹은 음수인지 판별
		if(num > 0 ) {
			//입력받은 정수는 양수인 경우
			if(num%5 == 0) {
				System.out.println("입력받은" + num + "은 5로 나누어집니다.");
			}else {
				System.out.println("입력받은" + num + "은 5로 나누어지지 않습니다.");
			}
			
		}else {
			//입력받은 정수는 음수인 경우
			System.out.println("음수 값이 입력 되었습니다.");
		}

	}

}

  • 04_Control-Ex08

최대값 변수 선언    

int max, min;

package sist;

import javax.swing.JOptionPane;

/*
 *  키보드로 두 수를 입력을 받아서 그 중에
 *  큰 정수를 화면에 출력해 보세요.
 */

public class Ex08 {

	public static void main(String[] args) {
		
		int su1 =
			Integer.parseInt(JOptionPane.showInputDialog("첫번째 정수 입력"));

		int su2 =
			Integer.parseInt(JOptionPane.showInputDialog("두번째 정수 입력"));		
				
	  // 최대값 변수 선언
		int max, min;
		if(su1 > su2) {
			max = su1;
			min = su2;
			
		}else {
			max = su2;
			min = su1;
			
		}
		
		System.out.println("최대값은 " + max + " 입니다.");
		System.out.println("최소값은 " + min + " 입니다.");
	}

}

  • 04_Control-Ex09★★★★

 

 

Scanner라는 클래스를 지정

 

System.out: 표준출력장치

System.in: 표준입력장치

 

 

입력

		Scanner sc = new Scanner(System.in)
				// System.out : 자바에서는 표준출력 장치를 의미함.
				//   			표준출력장치(모니터, 콘솔)
				
		int score = sc.nextInt();   //nextInt()키보드로부터 정수값을 입력받는 방법    
						//next는 문자열을 입력받을 때 사용

출력

커서만 깜박깜박 하고, 빨간불 들어오면 (실행되는 상태)

내가 원하는 자료형을 받을 수 있는데, 숫자와 문자가 복합되면 어렵다.

Scanner sc = new Scanner(System.in);

Scanner- nextint()  ,nextByte(), nextshort(), nextBoolean(), nextDouble(), nextFloat(), nextLong()

next() //문자열을 받는 메서드 

 

Scanner 사용하고는 반드시

sc.close();를 해줘야한다. 

Scanner buffer에 데이터가 남아있는 경우가 있을 수가 있기 때문에 반드시 종료를 시켜줘야한다.  //나중에 배우게된다.

 

 

 

 

package sist;

import java.util.Scanner;

import javax.swing.JOptionPane;

/*
 * [문제] 키보드로 점수를 입력받아서 입력받은 점수가 
 *       60점 이상이면 "합격" 이라는 문자열을 화면에 
 *       출력하고, 그렇지 않으면 "불합격" 이라는 
 *       문자열을 화면에 출력해 보세요.
 */

public class Ex09 {

	public static void main(String[] args) {
		
		
		//방법 1
		/*
		int score =
				Integer.parseInt(JOptionPane.showInputDialog("점수를 입력하세요"));
		
		if (score >= 60) {
			System.out.println("합격입니다.");
		}else {
			System.out.println("불합격입니다.");
		}
			*/
		
		
		
		//방법2  키보드 입력 받는 방법
		//키보드로 입력받기 위한 준비 작업 ch6 객체지향에서 배우게 됨
		//System.in : 표준입력장치(키보드)
		Scanner sc = new Scanner(System.in);
				// System.out : 자바에서는 표준출력 장치를 의미함.
				//   			표준출력장치(모니터, 콘솔)
		
				
		System.out.print("점수를 입력하세요 : ");     //코드 옆에 점수를 입력할 수 있게 print 메서드를 입력
				
		int score = sc.nextInt();   //nextInt()키보드로부터 정수값을 입력받는 방법    
						//next는 문자열을 입력받을 때 사용
		
		if (score >= 60) {
			System.out.println("합격입니다.");
			
		}else {
			
			System.out.println("불합격입니다");
		
			sc.close();
			
		}
		
		
		
		/*
		
	
		

		

	}

}

 

  • 04_Control-Ex10

이제 코드를 키보드로 입력받게 하기

package sist;

import javax.swing.JOptionPane;

/*
 * [문제] 키보드로 입력 받은 숫자가 
 * 		 홀수인지 짝수인지 판별해 보세요.
 * 
 */


public class Ex10 {

	public static void main(String[] args) {
		
		int su =
		Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));
		
		if (su%2 == 1) {      //홀수인 경우
			System.out.println("입력받은 " + su + " 는 홀수이다." );
			
		}else {   //짝수인 경우
			System.out.println("입력받은 " + su + " 는 짝수이다.");
		}

	}

}

 

***문제를 푸는데 오류를 못찾은 경우

public class Ex10 {

public static void main(String[] args) {

int su =
Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));

if (su%2 == 1) {      //홀수인 경우
System.out.println("입력받은 " + su + " 는 홀수이다." );

}else {   //짝수인 경우
System.out.println("입력받은 " +su + " 는 짝수이다.");
}

}

}

 

 

error  (su%2 == 0) (else의 조건식을 안써야함)

public class Ex10 {

public static void main(String[] args) {

int su =
Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하세요"));

if (su%2 == 1) {      //홀수인 경우
System.out.println("입력받은 " + su + " 는 홀수이다." );

}else (su%2 == 0) {   //짝수인 경우
System.out.println("입력받은 " +su + " 는 짝수이다.");
}

}

}


  • 04_Control-Ex11
* 다중 if~else문 - 분기문(조건문)
 * - 여러 개의 조건문 중에 맞는 조건에 해당하는 
 * 	  문장을 실행하는 구조.
 * 
 * 	  형식)
 * 			if(조건식1) {
 * 				조건식1이 참인 경우 실행문;
 *  		}else {
 *  			if(조건식2) {
 *  				조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
 *  			}else {
 *  				if(조건식3) {
 *  					조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
 *  				}else {
 *  					조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
 *  			}
 *  		}
 *  	}
 *  
 *  ==> if(조건식1) {
 *  		조건식1이 참인 경우 실행문;
 *  	}else if(조건식2) {
 *  		조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
 *  	}else if(조건식3) {
 *  		조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
 *  	}else {
 *  		조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
package sist;

import javax.swing.JOptionPane;

/*
 * 다중 if~else문 - 분기문(조건문)
 * - 여러 개의 조건문 중에 맞는 조건에 해당하는 
 * 	  문장을 실행하는 구조.
 * 
 * 	  형식)
 * 			if(조건식1) {
 * 				조건식1이 참인 경우 실행문;
 *  		}else {
 *  			if(조건식2) {
 *  				조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
 *  			}else {
 *  				if(조건식3) {
 *  					조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
 *  				}else {
 *  					조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
 *  			}
 *  		}
 *  	}
 *  
 *  ==> if(조건식1) {
 *  		조건식1이 참인 경우 실행문;
 *  	}else if(조건식2) {
 *  		조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
 *  	}else if(조건식3) {
 *  		조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
 *  	}else {
 *  		조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
 *  
 */

public class Ex11 {

	public static void main(String[] args) {
	
		int su =
		Integer.parseInt(JOptionPane.showInputDialog("1 ~ 3 사이의 숫자중 하나를 입력"));
			
		if(su == 1) {
			System.out.println("입력받은 숫자는 1입니다.");
			
		}else if(su == 2) {
			System.out.println("입력받은 숫자는 2입니다.");
			
		}else if(su == 3)  {
			System.out.println("입력받은 숫자는 3입니다.");
		
	}else {
		System.out.println("입력받은 숫자는 1~3 이외의 숫자입니다.");
	}
	}
}

 


  • 04_Control-Ex12
package sist;

import javax.swing.JOptionPane;

public class Ex12 {

	public static void main(String[] args) {
		
		int score = 
		Integer.parseInt(JOptionPane.showInputDialog("점수를 입력해 주세요."));
		
		if(score >= 90) {
			System.out.println("A학점입니다.");
			
		}else if(score >= 80)  {
			System.out.println("B학점입니다.");
		}else if(score >= 70) {
			System.out.println("c학점입니다.");
			
		}else if(score >= 60)  {
			System.out.println("D학점입니다.");
		}else {
			System.out.println("F학점입니다.");
		}
		
	}

}

  • 04_Control-Ex13★★★
package sist;

import java.util.Scanner;

import javax.swing.JOptionPane;

/*
 * [문제] 학생 성적 처리
 * 		 이름, 국어점수, 영어점수, 수학점수, 자바점수를
 * 		키보드로부터 입력을 받아서 총점, 평균, 그리고 
 * 		 학점까지 화면에 출력해 보세요.
 */

public class Ex13 {

	public static void main(String[] args) {
		
		// 1. 키보드로 이름, 국어점수, 영어점수, 수학점수,
	    //    자바점수를 입력을 받자.
		
String name =
 JOptionPane.showInputDialog("이름을 입력하세요");

	int kor = 
			Integer.parseInt(JOptionPane.showInputDialog("국어점수를 입력하세요"));

	int eng =
			Integer.parseInt(JOptionPane.showInputDialog("영어점수를 입력하세요"));
	int mat = 
			Integer.parseInt(JOptionPane.showInputDialog("수학점수를 입력하세요"));
	int java =
			Integer.parseInt(JOptionPane.showInputDialog("자바점수를 입력하세요"));

	//2. 총점을 구해 주자.
	int total = kor + eng + mat + java;

	//3. 평균을 구해 주자.
	double avg = total/ 4.0;

	//4. 학점을 구해 주자. 
	String grade;		//학점을 저장할 변수

	if(avg >= 90) {
		grade = "A학점";
	}else if(avg >= 80) {
		grade = "B학점";
	}else if(avg >= 70)	{
		grade = "C학점";
	}else if(avg >= 60) {
		grade = "D학점";
	}else {
		grade = "F학점";
	}

	System.out.println("이     름 : " + name);
	System.out.println("국어점수 : " + kor + "점");
	System.out.println("영어점수 : " + eng + "점");
	System.out.println("수학점수 : " + mat + "점");
	System.out.println("자바점수 : " + java + "점");
	System.out.println("총     점 : " + total + "점");
	System.out.printf("평      균 : %.2f점\n", avg);
	System.out.println("학    점 : " + grade);
	}

}

  • 04_Control-Ex14

Math.random()     : 임의의 숫자를 받아서 처리   

 

//주사위를 굴려서 임의의 숫자를 받아서 처리해 보자
int num = (int)(Math.random() * 6) + 1;

 

double 타입이기때문에 int 타입으로 형변환을 해줘야한다.

 

package sist;

public class Ex14 {

	public static void main(String[] args) {
		
		//주사위를 굴려서 임의의 숫자를 받아서 처리해 보자
		int num = (int)(Math.random() * 6) + 1;

		
		if(num == 1) {
			System.out.println("주사위의 1번이 나왔습니다.");
			
		}else if(num == 2) {
			System.out.println("주사위의 2번이 나왔습니다.");
		}else if(num == 3) {
			System.out.println("주사위의 3번이 나왔습니다.");
		}else if(num == 4) {
			System.out.println("주사위의 4번이 나왔습니다.");
		}else if(num == 5) {
			System.out.println("주사위의 5번이 나왔습니다.");
		}else {
			System.out.println("주사위의 6번이 나왔습니다.");
		}
	}

}


  • 04_Control-Ex15
 * switch~case 문 - 분기문(조건문)
 * - 식(정수 또는 char)을 사용해서 다중 분기하는 명령문.
 * - jdk 1.7 버전부터는 식에 String 사용이 가능함.
 * 형식)
 * 			switch(식 또는 값) {
 * 				case 값1 : 
 * 							값이 1일 때 실행문;
 * 							break;   // switch~case 블럭 탈출
 * 				case 값2 :
 * 							값이 2일 때 실행문;
 * 							break;
 * 				case 값3 :
 * 							값이 3일 때 실행문;
 * 							break;
 * 				default :
 * 							값1~ 값3 이외의 값이 들어온 경우 실행문;
 *							// 생략도 가능함.
package sist;

import javax.swing.JOptionPane;

/*
 * switch~case 문 - 분기문(조건문)
 * - 식(정수 또는 char)을 사용해서 다중 분기하는 명령문.
 * - jdk 1.7 버전부터는 식에 String 사용이 가능함.
 * 형식)
 * 			switch(식 또는 값) {
 * 				case 값1 : 
 * 							값이 1일 때 실행문;
 * 							break;   // switch~case 블럭 탈출
 * 				case 값2 :
 * 							값이 2일 때 실행문;
 * 							break;
 * 				case 값3 :
 * 							값이 3일 때 실행문;
 * 							break;
 * 				default :
 * 							값1~ 값3 이외의 값이 들어온 경우 실행문;
 *							// 생략도 가능함.
 */


public class Ex15 {    //다중if else문을 switch case문으로 바꾸는  
						//if else 문이 더 자주 쓰임 

	
	public static void main(String[] args) {
		
		int su =
		Integer.parseInt(JOptionPane.showInputDialog("1 ~ 3 사이의 정수를 입력하세요."));

		switch(su) {
			case 1:
				System.out.println("입력 받은 숫자는 1입니다.");
				break;
			case 2:
				System.out.println("입력 받은 숫자는 2입니다.");
				break;
			case 3:
				System.out.println("입력 받은 숫자는 3입니다.");
				break;	
			default:                //default문은 생략이 가능하기 때문에 집어넣지않아도 된다.
				System.out.println("1 ~ 3 이외의 숫자입니다.");
				break;
				
		}
	}

}