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]);
}
- 출력해서 확인