자바

JAVA STEP 16. DateTime&if&switch 예제 모음

2023. 2. 8. 18:35
728x90

예제 1) 요구사항 : 인자로 받은 숫자들의 합을 구하는 메소드를 선언하시오.

  • 조건
    • void sum(int)
    • void sum(int, int)
    • void sum(int, int, int)
    • void sum(int, int, int, int)
    • void sum(int, int, int, int, int)
  • 호출
    • sum(10);
    • sum(10, 20);
    • sum(10, 20, 30);
    • sum(10, 20, 30, 40);
    • sum(10, 20, 30, 40, 50);
  • 소스코드
  •  
package com.test.question;

public class Q0016 {

	public static void main(String[] args) {
		
		sum(10);
		sum(10, 20);
		sum(10, 20, 30);
		sum(10, 20, 30, 40);
		sum(10, 20, 30, 40, 50);
		
	}//main
	
	public static void sum(int a) {
		
		System.out.printf("%d = %d\n", a, a );
	}//sum(int)
	
	public static void sum(int a, int b) {
		
		int result = a+b;
		System.out.printf("%d + %d = %d\n", a, b, result );
	}//sum(int, int)
	
	public static void sum(int a, int b, int c) {
		
		int result = a+b+c;
		System.out.printf("%d + %d + %d = %d\n", a, b, c, result );
	}//sum(int, int, int)
	
	public static void sum(int a, int b, int c, int d) {
		
		int result = a+b+c+d;
		System.out.printf("%d + %d + %d + %d = %d\n", a, b, c, d, result );
	}//sum(int, int, int, int)
	
	public static void sum(int a, int b, int c, int d, int e) {
		
		int result = a+b+c+d+e;
		System.out.printf("%d + %d + %d + %d + %d = %d\n", a, b, c, d, e, result );
	}//sum(int, int, int, int, int)
	
	
	

}
  • 실행결과

예제 1 실행결과

예제 2) 요구사항 : 인자로 받은 이름들을 직급 순으로 출력하는 메소드를 선언하시오.

  • 조건
    • 사원 → 대리 → 과장 → 부장
    • void position(String)
    • void position(String, String)
    • void position(String, String, String)
    • void position(String, String, String, String)
  • 호출
    • position("홍길동");
    • position("홍길동", "유재석");
    • position("홍길동", "유재석", "박명수");
    • position("홍길동", "유재석", "박명수", "정형돈");
  • 소스코드
  •  
package com.test.question;

public class Q0017 {

	public static void main(String[] args) {
	position("홍길동");
	position("홍길동","유재석");
	position("홍길동","유재석","박명수");
	position("홍길동","유재석","박명수","정형돈");
	

	}//main
	
	public static void position(String s1) {
		System.out.printf("사원 : %s\n\n", s1);
	}//position (String s1)
	
	public static void position(String s1, String s2) {
		System.out.printf("사원 : %s\n", s1);
		System.out.printf("대리 : %s\n\n", s2);
	}//position (String s1, String s2)
	public static void position(String s1, String s2, String s3) {
		System.out.printf("사원 : %s\n", s1);
		System.out.printf("대리 : %s\n", s2);
		System.out.printf("과장 : %s\n\n", s3);
	}//position (String s1, String s2, String s3)
	public static void position(String s1, String s2, String s3, String s4) {
		System.out.printf("사원 : %s\n", s1);
		System.out.printf("대리 : %s\n", s2);
		System.out.printf("과장 : %s\n", s3);
		System.out.printf("부장 : %s\n", s4);
	}//position (String s1, String s2, String s3, String s4)
  • 실행결과

예제 2 실행결과

예제 3) 요구사항 : 인자로 받은 숫자들 중 양수의 갯수를 반환하는 메소드를 선언하시오.

  • 조건
    • int positive(int)
    • int positive(int, int)
    • int positive(int, int, int)
    • int positive(int, int, int, int)
    • int positive(int, int, int, int, int)
  • 호출
    • count = positive(10);
    • count = positive(10, 20);
    • count = positive(10, 20, -30);
    • count = positive(10, 20, -30, 40);
    • count = positive(10, 20, -30, 40, 50);
  • 소스코드
  •  
package com.test.question;

public class Q0018 {

	public static void main(String[] args) {
		positive(10);
		positive(10,20);
		positive(10,20,-30);
		positive(10,20,-30,40);
		positive(10,20,-30,40,50);
		

	}//main
	
	public static void positive(int a) {
		
		int count = a > 0 ? 1 : 0;
		System.out.printf("양수 : %d개\n", count);
	}//positive(int a)
	
	public static void positive(int a, int b) {
		
		int count = a > 0 ? 1 : 0;
		count = b > 0 ? ++count : count;
		System.out.printf("양수 : %d개\n", count);
	}//positive(int a, int b)
	
	public static void positive(int a, int b, int c) {
		
		int count = a > 0 ? 1 : 0;
		count = b > 0 ? ++count : count;
		count = c > 0 ? ++count : count;
		System.out.printf("양수 : %d개\n", count);
	}//positive(int a, int b, int c)
	
	public static void positive(int a, int b, int c, int d) {
		
		int count = a > 0 ? 1 : 0;
		count = b > 0 ? ++count : count;
		count = c > 0 ? ++count : count;
		count = d > 0 ? ++count : count;
		System.out.printf("양수 : %d개\n", count);
	}//positive(int a, int b, int c, int d)
	
	public static void positive(int a, int b, int c, int d, int e) {
		
		int count = a > 0 ? 1 : 0;
		count = b > 0 ? ++count : count;
		count = c > 0 ? ++count : count;
		count = d > 0 ? ++count : count;
		count = e > 0 ? ++count : count;
		System.out.printf("양수 : %d개\n", count);
	}//positive(int a, int b, int c, int d, int e)

}
  • 실행결과

예제 3 실행결과

예제 4) 요구사항 : 현재 시간을 출력하는 메소드 선언하시오.

  • 조건
    • void nowTime()
    • 현재 시간을 24시간으로 출력하시오.
    • 현재 시간을 오전/오후로 출력하시오
  • 호출
    • nowTime();
  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;

public class Q0019 {

	public static void main(String[] args) {
		
		nowTime();
	}//main
	public static void nowTime() {
		Calendar now = Calendar.getInstance();
		
		int hour = now.get(Calendar.HOUR_OF_DAY);
		int minute = now.get(Calendar.MINUTE);
		int second = now.get(Calendar.SECOND);
		
		System.out.printf("현재 시간 : %d시 %d분 %d초\n", hour, minute, second);
		
		String when = now.get(Calendar.AM_PM) == 0? "오전" : "오후";
		hour = now.get(Calendar.HOUR);
		minute = now.get(Calendar.MINUTE);
		second = now.get(Calendar.SECOND);
		
		System.out.printf("현재 시간 : %s %d시 %d분 %d초\n", when, hour, minute, second);
		
		
	}
}
  • 실행결과

예제 4 실행결과

예제 5) 요구사항 : 오늘 태어난 아이의 백일과 첫돌을 출력하시오

  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;

public class Q0020 {

	public static void main(String[] args) {
		
		Calendar now = Calendar.getInstance();
		
		Calendar born = Calendar.getInstance();
		
		born.set(2023, 1, 8); //2월 8일 탄생
		born.add(Calendar.DATE, 100); //100일 잔치
		System.out.printf("백일잔치 : %tF\n", born);
		
		born.set(2023, 1, 8);
		born.add(Calendar.YEAR, 1); //생일 잔치
		System.out.printf("백일잔치 : %tF\n", born);

	}

}
  • 실행결과

예제 5 실행결과

예제 6) 요구사항 : 태어난 년도를 입력하면 나이를 출력하시오

  • 조건
    • 올해를 기준으로 나이를 계산하시오.
    • 내년, 내후년에 실행해도 그때에 맞는 나이를 출력한다.
    • 우리나라 나이로 출력하시오.
  • 입력
    • 태어난 년도 : 1995
  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;
import java.util.Scanner;

public class Q0021 {

	public static void main(String[] args) {
		
		Calendar now = Calendar.getInstance();
		
		Scanner scan = new Scanner(System.in);
		
		System.out.print("태어난 년도를 입력하세요 : ");
		int born = scan.nextInt();
		
		int nowYear = now.get(Calendar.YEAR);
		
		int age = nowYear - born+1;
		
		System.out.printf("당신의 나이는 : %d 세", age);

	}

}
  • 실행결과

예제 6 실행결과

예제 7) 요구사항 : 남녀 커플의 이름과 만난날을 입력받아 기념일을 출력하시오.

  • 조건
    • 남자 이름: 하하하
    • 여자 이름: 호호호
    • 만난날(년): 2023
    • 만난날(월): 2
    • 만난날(일): 8
  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;
import java.util.Scanner;

public class Q0022 {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		Calendar now = Calendar.getInstance();
		
		System.out.print("남자 이름 : ");
		String boy = scan.next();
		
		System.out.print("여자 이름 : ");
		String girl = scan.next();
		
		System.out.print("만난날(년) : ");
		int year = scan.nextInt();
		
		System.out.print("만난날(월) : ");
		int month = scan.nextInt();
		
		System.out.print("만난날(일) : ");
		int day = scan.nextInt();
		
		now.set(year, month-1, day);
		
		System.out.printf("'%s'과(와) '%s'의 기념일\n",boy, girl);
		
		now.add(Calendar.DATE, 100);
		System.out.printf("100일 : %tF\n", now);
		
		now.add(Calendar.DATE, 100);
		System.out.printf("200일 : %tF\n", now);
		
		now.add(Calendar.DATE, 100);
		System.out.printf("300일 : %tF\n", now);
		
		now.add(Calendar.DATE, 200);
		System.out.printf("500일 : %tF\n", now);
		
		now.add(Calendar.DATE, 500);
		System.out.printf("1000일 : %tF\n", now);
		
	}

}
  • 실행결과

예제 7 실행결과

예제 8) 요구사항 : 아빠와 딸의 생일을 입력받아 아빠가 딸보다 며칠을 더 살았는지 출력하시오.

  • 입력
    • 아빠 생일(년): 1970
    • 아빠 생일(월): 5
    • 아빠 생일(일): 10
    • 딸 생일(년): 1998
    • 딸 생일(월): 7
    • 딸 생일(일): 22 
  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;
import java.util.Scanner;

public class Q0023 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		Calendar Dad = Calendar.getInstance();
		Calendar Daughter = Calendar.getInstance();
		
		System.out.print("아빠 생일(년) : ");
		int Dad_Year = scan.nextInt();
		
		System.out.print("아빠 생일(월) : ");
		int Dad_Month = scan.nextInt();
		
		System.out.print("아빠 생일(일) : ");
		int Dad_day = scan.nextInt();
		
		System.out.print("딸 생일(년) : ");
		int Daughter_Year = scan.nextInt();
		
		System.out.print("딸 생일(월) : ");
		int Daughter_Month = scan.nextInt();
		
		System.out.print("딸 생일(일) : ");
		int Daughter_day = scan.nextInt();
		
		Dad.set(Dad_Year, Dad_Month-1, Dad_day);
		Daughter.set(Daughter_Year, Daughter_Month-1, Daughter_day);
		
		long DadTick = Dad.getTimeInMillis();
		long DaughterTick = Daughter.getTimeInMillis();
		
		System.out.printf("아빠는 딸보다 총 %,d일을 더 살았습니다.\n",
							(DaughterTick - DadTick)/1000/60/60/24);
		
		
		

	}

}
  • 실행결과

예제 8 실행결과

예제 9) 요구사항 : 여러 배달 음식을 같은 시간에 받기를 원하는 고객이 있다. 고객이 각각의 매장에 몇시에 전화를 해야 모든 음식을 같은 시간에 받을 수 있는지 알려주시오.

  • 조건
    • 전화를 걸면 짜장면은 10분 뒤에 도착합니다.
    • 전화를 걸면 치킨은 18분 뒤 도착합니다.
    • 전화를 걸면 피자는 25분 뒤 도착합니다.
    • 음식을 받기 원하는 시간은 오후 11시 이전에만 가능합니다.(날짜 변경 금지)
  • 입력
    • 음식을 받기 원하는 시각
    • 시 : 20
    • 분 : 22
  • 소스코드
  •  
package com.test.question;

import java.util.Calendar;
import java.util.Scanner;

public class Q0024 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		Calendar now = Calendar.getInstance();
		
		System.out.println("음식을 받기 원하는 시각");
		
		System.out.print("시 : ");
		int hour = scan.nextInt();
		
		System.out.print("분 : ");
		int min = scan.nextInt();
		
		now.set(Calendar.HOUR_OF_DAY, hour);
		now.set(Calendar.MINUTE, min);
	
		now.add(Calendar.MINUTE, -10);
		System.out.printf("짜장면 : %d시 %d분\n",
						now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE));
		now.add(Calendar.MINUTE, -8);
		System.out.printf("치킨 : %d시 %d분\n",
						now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE));
		now.add(Calendar.MINUTE, -7);
		System.out.printf("피자 : %d시 %d분\n",
						now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE));
		
		
		
		

	}

}
  • 실행결과

예제 9 실행결과

예제 10) 요구사항 : 숫자 2개를 입력받아 큰수와 작은수를 출력하시오.

  • 조건
    • 두 숫자가 얼마의 차이를 보이는지 출력하시오.
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0025 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("첫번째 숫자 : ");
		int num1 = scan.nextInt();

		System.out.print("두번째 숫자 : ");
		int num2 = scan.nextInt();
		
		if( num1 > num2) {
			System.out.printf("큰수는 %d이고, 작은수는 %d입니다. 두 숫자는 %d(가)이 차이납니다.\n", num1, num2, (num1-num2) );
		}else if (num1 < num2) {
			System.out.printf("큰수는 %d이고, 작은수는 %d입니다. 두 숫자는 %d(가)이 차이납니다.\n", num2, num2, (num2-num1) );
		}else {
			System.out.println("두 숫자는 동일 합니다.");
		}
	}

}
  • 실행결과

예제 10 실행결과

예제 11) 요구사항 : 학생의 국어 점수를 입력받아 성적을 출력하시오.

  • 조건
    • 90 ~ 100: A
    • 80 ~  89: B
    • 70 ~  79: C
    • 60 ~  69: D
    •  0 ~   59: F
    • 유효성 검사를 하시오.(점수: 0 ~ 100점 이내)
  • 입력
    • 점수 : 85
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0026 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("점수를 입력하세요 : ");
		int sum = scan.nextInt();
		
		if((sum >= 90)&&(sum<=100)) {
			System.out.printf("입력한 %d점은 성적 A입니다.\n", sum);
		}else if((sum >=80)&&(sum<90)) {
			System.out.printf("입력한 %d점은 성적 B입니다.\n", sum);
		}else if((sum >=70)&&(sum<80)) {
			System.out.printf("입력한 %d점은 성적 C입니다.\n", sum);
		}else if((sum >=60)&&(sum<70)) {
			System.out.printf("입력한 %d점은 성적 D입니다.\n", sum);
		}else if((sum >=0 )&&(sum<=59)) {
			System.out.printf("입력한 %d점은 성적 F입니다.\n", sum);
		}else {
			System.out.println("점수가 올바르지 않습니다. 0~100 사이의 값을 입력하시오.");
		}
		

	}

}
  • 실행결과

예제 11 실행결과

예제 12) 요구사항 : 문자 1개를 입력받아 아래와 같이 출력하시오.

  • 조건
    • f, F → Father
    • m, M → Mother
    • s, S → Sister
    • b, B → Brother
    • 유효성 검사를 하시오.(위의 문자가 아닌 문자는 예외 처리)
  • 입력
    • 문자: f 
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0027 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("문자를 입력하세요 : ");
		String result = scan.next();
		
		if(result.equals("f")||result.equals("F")) {
			System.out.println("Father");
		}else if(result.equals("m")||result.equals("M")) {
			System.out.println("Mother");
		}else if(result.equals("s")||result.equals("S")) {
			System.out.println("Sister");
		}else if(result.equals("b")||result.equals("B")) {
			System.out.println("Brother");
		}else {
			System.out.println("입력한 문자가 올바르지 않습니다.");
		}

	}

}
  • 실행결과

예제 12 실행결과

예제 13) 요구사항 : 근무 년수를 입력받아 아래와 같이 출력하시오

  • 조건
    • 1 ~ 4년차: 초급 개발자
    • 5 ~ 9년차: 중급 개발자
    • 10년차 이상: 고급 개발자
    • 유효성 검사를 하시오.(1 미만 입력 예외 처리)
  • 입력
    • 근무 년수 : 2
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0028 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("근무년수 : ");
		int work = scan.nextInt();
		
		if((work>=1)&&(work<5)) {
			System.out.printf("%d년차 초급 개발자입니다.\n", work );
			System.out.printf("앞으로 %d년 더 근무를 하면 중급 개발자가 됩니다.",(5-work));
		}else if((work>=5)&&(work<10)) {
			System.out.printf("%d년차 중급 개발자입니다.\n", work );
			System.out.printf("당신은 %d년전까지 초급 개발자였습니다.\n",(work-5) );
			System.out.printf("앞으로 %d년 더 근무를 하면 고급 개발자가 됩니다.",(10-work));
		}else if(work>=10) {
			System.out.printf("%d년차 고급 개발자입니다.\n", work);
			System.out.printf("당신은 %d년전까지 중급 개발자였습니다.", (work-9));
		}else {
			System.out.println("입력한 값이 올바르지 않습니다. 1이상의 값을 입력하세요.");
		}
		

	}

}
  • 실행결과

예제 13 실행결과

예제 14) 요구사항 : 숫자 2개와 연산자 1개를 입력받아 연산 과정과 결과를 출력하시오.

  • 조건
    • 정수만 입력하시오.(유효성 검사 필요없음)
    • 나머지 연산 결과는 소수이하 첫째자리까지 출력 하시오.
    • 연산자는 산술 연산자(+, -, *, /, %)만 입력하시오.
  • 입력
    • 첫번째 숫자: 5
    • 두번째 숫자: 3
    • 연산자: *
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0029 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.print("첫번째 숫자 : ");
		int num1 = scan.nextInt();
		
		System.out.print("두번째 숫자 : ");
		int num2 = scan.nextInt();
		
		System.out.print("연산자 : ");
		String num3 = scan.next();
		
		switch(num3) {
			case("+"):
				System.out.printf("%d + %d = %d", num1, num2,(num1+num2));
				break;
			case("-"):
				System.out.printf("%d - %d = %d", num1, num2,(num1-num2));
				break;
			case("*"):
				System.out.printf("%d * %d = %d", num1, num2,(num1*num2));
				break;
			case("/"):
				System.out.printf("%d / %d = %.1f", num1, num2,(double)(num1/num2));
				break;
			case("%"):
				System.out.printf("%d %% %d = %d", num1, num2,(num1%num2));
				break;
			default:
				System.out.println("연산이 불가능 합니다.");
		}
		

	}

}
  • 실행결과

예제 14 실행결과

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'자바' 카테고리의 다른 글

JAVA STEP 18. if문 & for문 예제 모음  (0) 2023.02.09
JAVA STEP 17. for문  (0) 2023.02.09
JAVA STEP 15. if&switch  (0) 2023.02.08
JAVA STEP 14. DateTime  (0) 2023.02.08
JAVA STEP 13. Method 예제 모음  (0) 2023.02.07
'자바' 카테고리의 다른 글
  • JAVA STEP 18. if문 & for문 예제 모음
  • JAVA STEP 17. for문
  • JAVA STEP 15. if&switch
  • JAVA STEP 14. DateTime
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • DBA
  • jsp
  • 정보처리기사필기
  • 앱개발자
  • java
  • ajax
  • IT자격증공부
  • 백준
  • 코딩테스트
  • 개발블로그
  • IT자격증
  • 정보처리기사
  • IT개발자
  • JavaScript
  • 개발자
  • 백엔드
  • 정보보안전문가
  • 자바
  • DB
  • css
  • it
  • 프론트엔드
  • html
  • React
  • 웹개발자
  • jquery
  • 웹페이지
  • 데이터베이스
  • 알고리즘
  • 웹개발

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVA STEP 16. DateTime&if&switch 예제 모음
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.