관리 메뉴

거니의 velog

230710 자바 강의 본문

대덕인재개발원_Java

230710 자바 강의

Unlimited00 2023. 7. 12. 20:10

[IfStatementExample02.java]

package ddit.chap04.sec01;

import java.util.Scanner;

public class IfStatementExample02 {
	
	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		
//		methods1();
		methods2();
		
	}
	
	public static void methods1() {
		
		// 키보드로 숫자 하나(1~10)를 입력받고,
		// 컴퓨터에서 난수(1~10)를 입력받아 두 수를 비교하여 
		// 같은 값이면 "정답입니다"를 출력하시오.
		
		System.out.print("숫자 입력 (1~10) : ");
		int userNum = sc.nextInt();
		
		// 0.0 <= Math.random() < 1.0
		// 0.0 <= Math.random()*10 < 10.0
		// 0 <= (int) Math.random*10 < 10
		// 1 <= (int) Math.random*10+1 < 11
				
		// (int) (Math.random()*구간상한값)+구간하한값 -> 난수발생식.
		
		int comNum = (int) (Math.random() * 10) + 1; // 1~10 사이의 정수형 난수
		
		System.out.println("유저가 입력한 정수 : " + userNum);
		System.out.println("컴퓨터가 발생시킨 난수 : " + comNum);
		
		if(userNum == comNum) {
			System.out.println("정답입니다.");
		}else {
			System.out.println("정답이 아닙니다.");
		}
		
	}
	
	public static void methods2() {
		
		// 키보드로 숫자 하나(1~10)를 입력받고,
		// 컴퓨터에서 난수(1~10)를 입력받아 두 수를 비교하여 
		// 1) 컴퓨터에서 생성된 수가 사용자의 숫자보다 더 큰 수(com>user)이면  "더 큰 수를 입력하세요"를 출력하고
		// 2) 컴퓨터에서 생성된 수가 사용자의 숫자보다 더 작은 수(com<user)이면 "더 작은 수를 입력하세요"를 출력하고
		// 3) 컴퓨터에서 생성된 수가 사용자의 숫자가 같은 값이면 "정답입니다"를 출력하시오.
		// "정답입니다"가 출력될 때까지 계속 반복해서 물어보기(무한루프)
		
		System.out.print("숫자 입력 (1~10) : ");
		int userNum = sc.nextInt();
		
		int comNum = (int) (Math.random() * 10) + 1; // 1~10 사이의 정수형 난수
		
		System.out.println("유저가 입력한 정수 : " + userNum);
		System.out.println("컴퓨터가 발생시킨 난수 : " + comNum);
		
		while (true) {
			
			if(userNum < comNum) {
				System.out.println("더 큰 수를 입력하세요.");
			}else if(userNum > comNum) {
				System.out.println("더 작은 수를 입력하세요.");
			}else {
				System.out.println("정답입니다");
				break;
			}
			
			System.out.print("숫자 입력 (1~10) : ");
			userNum = sc.nextInt();
			
		}
		
	}

}

[IfStatementExample03.java]

package ddit.chap04.sec01;

import java.util.Scanner;

public class IfStatementExample03 {

	static Scanner sc = new Scanner(System.in);
	
	public static void main(String[] args) {
		
		methods1();
		
	}
	
	public static void methods1() {
		
		// 키보드로 아이디와 패스워드를 입력받아 로그인되는 과정이다.
		// 먼저 아이디를 비교하여 아이디가 일치하면 비밀번호를 비교하고
		//                  아이디가 일치하지 않으면 "아이디가 일치하지 않습니다"를 출력
		// 프로그램 실행을 종료하며, 비밀번호도 같은 방법으로 비교하여
		// 모두 일치하면 "xx님 환영합니다."라는 메시지를 출력.
		
		String dbId = "e1004";
		String dbPw = "1234";
		
		System.out.print("아이디? : ");
		String uid = sc.nextLine();
		System.out.print("패스워드? : ");
		String upw = sc.nextLine();
		
		// uid==dbId는 객체형 변수의 주소를 비교하는 것이므로 false.
		// 안에 들어 있는 내용을 비교하기 위해서는 Object 클래스의 equals() 메소드를 사용해야 한다.
		// uid.equalsIgnoreCase(). 대소문자 구분하지 않고 값만 비교.
		if(uid.equals(dbId)) {
			if(upw.equals(dbPw)) {
				System.out.println(uid + " 님 환영합니다.");
			}else {
				System.out.println("비밀번호가 일치하지 않습니다.");
			}
		}else {
			System.out.println("아이디가 일치하지 않습니다.");
		}
		
	}

}

[SwitchCaseExample01.java]

package ddit.chap04.sec01;

import java.util.Scanner;

public class SwitchCaseExample01 {
	
	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		
//		methods1();
//		methods2();
		methods3();
		
	}
	
	public static void methods1() {
		
		// 키보드로 입력받은 수를 평가하여 짝수와 홀수를 구별하시오.
		
		System.out.print("숫자 : ");
		int num = Integer.parseInt(sc.nextLine());
		int mod = num % 2;
		
		switch (mod) {
			case 0 : 
				System.out.println(num + " 은 짝수입니다.");
				break;
			case 1 : 
				System.out.println(num + " 은 홀수입니다.");
				break;
			default : 
				System.out.println("오류입니다.");
		}
		
	}
	
	public static void methods2() {
		
		// 1~12 사이의 숫자를 입력받아 그 값이 
		// 3-5 이면 "봄"
		// 6-8 이면 "여름"
		// 9-11이면 "가을"
		// 12, 1, 2 이면 "겨울"
		
		System.out.print("몇 월? : ");
		int month = sc.nextInt();
		
		switch (month) {
			case 3: case 4: case 5:
				System.out.println("봄입니다.");
				break;
			case 6: case 7: case 8:
				System.out.println("여름입니다.");
				break;
			case 9: case 10: case 11:
				System.out.println("가을입니다.");
				break;
			case 12: case 1: case 2:
				System.out.println("겨울입니다.");
				break;
			default:
				System.out.println("올바른 월을 입력해 주세요.");
		}
		
	}
	
	public static void methods3() {
		
		// 회원들의 마일리지에 따라 
		// 마일리지가 1000 - 3999에 속하면 "일반회원 입니다."
		// 마일리지가 4000 - 6999에 속하면 "우수회원 입니다."
		// 그 이상이면 vip 회원을 비고에 출력하시오.
		// 입력자료는 회원번호, 회원명, 마일리지이고
		// 출력은 회원번호, 회원명, 마일리지, 비고이다.
		
		System.out.print("회원번호 : ");
		String memNum = sc.nextLine();
		
		System.out.print("회원명 : ");
		String memName = sc.nextLine();
		
		System.out.print("마일리지 : ");
		int memMile = sc.nextInt();
		
		String kind = "";
		
		switch (memMile / 1000) {
			case 1: case 2: case 3: 
				kind = "일반회원";
				break;
			case 4: case 5: case 6:
				kind = "우수회원";
				break;
			default:
				kind = "VIP회원";
		}
		
		System.out.println("회원번호 : " + memNum);
		System.out.println("회원명 : " + memName);
		System.out.println("마일리지 : " + memMile);
		System.out.println("비고 : "+ kind);
		
	}

}

[SwitchCaseExample02.java]

package ddit.chap04.sec01;

import java.util.Scanner;

public class SwitchCaseExample02 {

	static Scanner sc = new Scanner(System.in);
	
	public static void main(String[] args) {
		
		// 100-97 : A+,
		// 96-93 : A0,
		// 92-90 : A-,
		// 89-87 : B+,
		// 86-83 : B0,
		// 82-80 : B-,
		// 그 이하는 Fail을 출력
		
		System.out.print("점수 : ");
		int score = sc.nextInt();
		
		String grade = "";
		
		switch (score / 10) {
			case 10:
				grade = "A+";
				break;
			case 9:
				grade = "A";
				switch (score % 10) {
					case 0: case 1: case 2:
						grade += "-";
						break;
					case 3: case 4: case 5: case 6:
						grade += "0";
						break;
					case 7: case 8: case 9:
						grade += "+";
				}
				break;
			case 8:
				grade = "B";
				switch (score % 10) {
					case 0: case 1: case 2:
						grade += "-";
						break;
					case 3: case 4: case 5: case 6:
						grade += "0";
						break;
					case 7: case 8: case 9:
						grade += "+";
				}
				break;
			case 7:
				grade = "C";
				switch (score % 10) {
					case 0: case 1: case 2:
						grade += "-";
						break;
					case 3: case 4: case 5: case 6:
						grade += "0";
						break;
					case 7: case 8: case 9:
						grade += "+";
				}
				break;
			case 6:
				grade = "D";
				switch (score % 10) {
					case 0: case 1: case 2:
						grade += "-";
						break;
					case 3: case 4: case 5: case 6:
						grade += "0";
						break;
					case 7: case 8: case 9:
						grade += "+";
				}
				break;
			default:
				grade = "Fail";
		}
		
		System.out.println(score +"점의 학점은 " + grade);
		
	}

}

[ForExample01.java]

package ddit.chap04.sec02;

public class ForExample01 {

	public static void main(String[] args) {
		
		forMethods01();
		
	}
	
	public static void forMethods01() {
		
		// 반복문 3가지의 수단, 목적이 다름.
		// 1. for : 반복 횟수를 정확하게 알고 있거나, 반복 횟수가 중요한 요소가 될 경우.
		//          제어변수(지역변수)를 이용해서 그 값을 판단해 반복을 할 것인지 말 것인지를 판단.
		
		// 1부터 10 사이의 수를 한 칸 공백을 두고 붙여서 출력하세요.
		
		for(int i=1; i<=10; i++) {
			
//			System.out.print(i + " "); // 1 2 3 4 5 6 7 8 9 10 
			
			// printf("형식지정문자열", 변수, 변수...)
			// "%[+,-][숫자] s(문자열)/f(실수)/d(10진수)"
			// printf("%3d %4s", s, n)
//			System.out.printf("%3d", i); //  1  2  3  4  5  6  7  8  9 10
			System.out.printf("%-2d", i); //1 2 3 4 5 6 7 8 9 10
			
		}
		
	}

}

'대덕인재개발원_Java' 카테고리의 다른 글

230712 자바 강의  (0) 2023.07.12
230711 자바 강의  (0) 2023.07.12
230707 자바 강의  (0) 2023.07.12
230706 자바 강의  (0) 2023.07.12
230705 자바 강의  (0) 2023.07.12