Java 삼항연산과 배열

zihooy·2023년 5월 3일
0

Java Programming

목록 보기
3/21
post-thumbnail

Java 기본 문법 중 삼항연산, 배열에 대해 알아보자.

🏹 Java의 삼항연산과 적용

Q. 삼항 연산이란?
A. 3개의 피연산자를 필요로 하는 연산자

길어지는 코드를 아주 간결하게 표현하는 것이므로, Syntatic Sugar Code라고도 불린다.

예시를 통해 확인해보자 !

public class hello {
	public static void main(String[] args) {
		int n ;
		if(3>2) {
			n = 10;
		} else {
			n = 20;
		}
		
		// sugar code로 바꾸면 ?
		n = (3 > 2) ? 10 : 20;
		n = 3 > 2 ? 10 : 20;

if-else문으로 길게 이어졌던 코드가 단 1줄로 변신 !

		if(n%2 == 0 ) {
			n = n/2;
		} else {
			n = n*3+1;
		}
		
        //삼항 연산으로 바꿔보면 ?
		n = n % 2 == 0 ? n / 2 : n * 3 + 1;
		

🍯 꿀팁 🍯 삼항 연산은 print할 때와, 함수의 return 값에도 적용할 수 있다.

		//print할 때
		if(3>2) {
			System.out.println("호랑이");
		} else {
			System.out.println("사자");
		}

		//삼항 연산으로 바꿔보면 ?
		System.out.println(3 > 2 ? "호랑이" : "독수리");
		
		//함수의 return 값에
		return 3 > 2 ? 10:20

	}
}

🏹 Java의 배열

public class hello {
	public static void main(String[] args) {
		// 1
		int[] ar = new int[10];
		// 2: test 용도 
		int[] br = new int[] {1, 2, 3};
		// 3: test 용도 
		int[] cr = {1, 2, 3};
		// 4
		int num = 10;
		int[] dr = new int[num];
		// 5: 문자열 관련
		String[] er = new String[3];
		er[0] = "test1";
		er[1] = "test2";
		er[2] = "test3";
		// 6: 실제 사용
		String[] fr = new String[] {"","",""};
		// 7: 실제 사용
		String[] gr = {"","",""};
		// 8: 문제 있는 코드
		String str1 = "호랑이";
		// 8: 정석 코드, String은 class이고 class 에는 항상 new가 붙는다.
		String str2 = new String("호랑이");
		// 8: 정석 코드 
		String[] hr = {
				new String("소1"),
				new String("소2"),
				new String("소3")
		};
		// 9: 정석 코드 
		Tiger[] ir = new Tiger[]{
				new Tiger(),
				new Tiger(),
				new Tiger()
		};
		// 9에서 new Tiger[] 생략 가능
		Tiger[] jr = {
				new Tiger(),
				new Tiger(),
				new Tiger()
		};
		// 10: 정석 코드 
		String[] kr = new String[3];
		kr[0] = "호랑이1;";
		kr[1] = "호랑이2;";
		

요약하자면,
1) 객체 배열 앞에는 "new 객체"가 생략되어 있다.

		Tiger[] ir = new Tiger[]{
				new Tiger(),
				new Tiger(),
				new Tiger()
		};
        Tiger[] lr = new Tiger[3];
		
		lr[0].f1(); // 잘못됨 
		
        lr[0] = new Tiger();	//new 사용
		lr[0].f1(); 		// 성립 

2) 배열 안 각 객체 마다 new 활용해야 그 안의 메소드를 사용할 수 있다.

		// 11
		// 부모클래스 객체 = new 자식클래스(); >> 업캐스팅
		// 성립하는 코드
		A a1 = new B();
		A a2 = new C();
		A a3 = new D();
		// 배열로 만들기
		A[] a4 = new A[] {new B(), new C(), new D()};
		A[] a5 = new A[3];
		a5[0] = new B();
		a5[1] = new C();
		a5[2] = new D();
		// 12: 길이
		int[] ar = new int[2];
		System.out.println(ar.length);	
	}
}
class Tiger {
	void f1() {}
}
class A {}
class B extends A{}
class C extends A{}
class D extends A{}
profile
thisIsZihooLog

0개의 댓글