자바

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 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 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

인기 글

태그

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

최근 댓글

최근 글

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 + /
⇧ + /

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