JAVAIARY

조건문, 반복문, 삼항연산자, 배열, 2개리턴 본문

examplePractice

조건문, 반복문, 삼항연산자, 배열, 2개리턴

shiherlis 2022. 9. 10. 17:15

예제 1)   

* switch 조건문
 *  사용자가 자신의 연령대를 입력하면 해당 연령대에 맞는 책을 추천하는 코드를 만들어 보시오.

public static void main(String[] args) {
	int age;
	Scanner scan = new Scanner(System.in);
	System.out.println("연령대를 입력하세요.");
	age = scan.nextInt();
// 	사용자 입력 예외처리
	if ((age<10)||(age>=11 && age <20)||(age>=21 && age <30)||(age>=31 && age <40)||
			(age>=41 && age <50)||(age>=51 && age <60)) {
		System.out.println("연령대는 10,20,30,40,50,60 중에서 입력해주세요. 프로그램을 종료합니다.");
		System.exit(0);
		
	}
//  반복문	
	switch (age) {
	case 10:
		System.out.println(age+ "대 추천 매대는 A 구역입니다.");
		break;
	case 20:
		System.out.println(age+ "대 추천 매대는 B 구역입니다.");
		break;
		case 30:
		System.out.println(age+ "대 추천 매대는 C 구역입니다.");
		break;
	case 40:
		System.out.println(age+ "대 추천 매대는 D 구역입니다.");
		break;
	case 50:
		System.out.println(age+ "대 추천 매대는 E 구역입니다.");
		break;
	case 60:
		System.out.println(age+ "대 추천 매대는 F 구역입니다.");
		break;
	
	default:
		System.out.println("70대 이상 추천 매대는 G 구역입니다.");
		}
	scan.close();
}

- System.exit(0) : 프로그램 종료하고 이후 코드를 실행하지 않음


예제2) -1 삼항연산자

 * 조건식 ? 결과1 : 결과2

 * 10보다 작거나 같으면 100을 곱하시오

int num = scan.nextInt();
		
int result = num <= 10 ? num *100:  1;
System.out.println(result);

예제 2) - 2 삼항연산자

 * 삼항연산자를 이용하여 12시보다 작으면 오전, 크면 오후를 출력하도록 구현해보시오.

Scanner scan = new Scanner(System.in);
		
System.out.println("시간을 입력하세요(1~24)");
int hour = scan.nextInt();
String hourFix = 
(hour <= 12 && hour >=1) ? "오전" + hour + "시 입니다.":
(hour >12 && hour <=24 )? "오후" + hour + "시 입니다.":"시간 설정 오류입니다.";
System.out.println(hourFix);​

 - 삼항연산자 이용시 받아주는 변수의 타입을 주의할 것!!

- 삼항연산자 이용시 받아주는 참조변수 없이 sysout 을 사용하여 바로 출력은 불가능( return 값이 sysout이 될 수 없음)

- 출력 함수 안에 삼항연산자 작성은 가능


예제 3) 배열

다중배열 선언

int[] a, b c;
int d[], e[], f[];​

배열의 복사

		int[] arr1= {1,2,3,4,5};
		int[] arr2= {1,2,3,4,5,6,7,8,9,10};
		
		System.arraycopy(arr1, 1, arr2, 5, 2);
		
		int[] arr3 = arr2.clone();
		
		int[] arr4 = Arrays.copyOfRange(arr2, 5, 9);
		
		int[] arr5 = Arrays.copyOf(arr2, 3);
 		
		
		System.out.println(Arrays.toString(arr2));
		System.out.println(Arrays.toString(arr3));
		System.out.println(Arrays.toString(arr4));
		System.out.println(Arrays.toString(arr5));

출력값

[1, 2, 3, 4, 5, 2, 3, 8, 9, 10]
[1, 2, 3, 4, 5, 2, 3, 8, 9, 10]
[2, 3, 8, 9]
[1, 2, 3]

예제 4)

 * static선언이 되어있지 않은 메서드를 사용하는 코드를 구현하시오.

public class TestStatic {
	public void helloWorld() {
		System.out.println("Hello World!");
	}
	public TestStatic() {
	helloWorld();
	}
	public static void main(String[] args) {
		TestStatic ts = new TestStatic();
		
	}
}​
public class TestStatic {
	public void helloWorld() {
		System.out.println("Hello World!");
	}

	public static void main(String[] args) {

		TestStatic ts2 = new TestStatic();
		ts2.helloWorld();
	}
}​

예제 5)

* 2개의 정수형을 리턴하는 메서드를 구현하시오.

	public static int[] ReturnTwo(int num1, int num2) {
		return new int[] {num1, num2};
	}

- 배열을 이용하여 반환해 줌

- (int num1, int num2) 와 같은 매개변수 없이 메서드 내부에서 초기화 해 주는 것도 가능

	public static void main(String[] args) {
		int[] R2 = ReturnTwo(20, 30);
        
		System.out.println(Arrays.toString(R2));
        	System.out.println(R2[0]+", " + R2[1]);

	}

- 출력해서 확인

 

'examplePractice' 카테고리의 다른 글

프로그래머스) lv.2 올바른 괄호  (0) 2023.01.23
함수  (0) 2022.12.15
반복문, 배열  (0) 2022.10.02
반복문, 배열  (0) 2022.10.02
반복문 연습 1  (0) 2022.08.21