Study/Java

[JAVA] for문 축약(for each문), if-else 축약(삼항 연산자)

토기발 2022. 10. 18. 00:49

며칠 전 올렸던 사이트는 코딩 문제를 풀고 나서 다른 사람들의 답도 확인할 수 있게 되어 있는데, 구경하다보면 어떤 방식으로 돌아가는 건지는 알겠는데 생소한 코드들이 있었다.

보통 그런 것들이 제목에 있는 축약형이라 이 기회에 정리해본다.

 

 

for문 축약(향상된 for문, for each문)

주로 배열 원소를 출력할 때 많이 사용한다. 

배열 인덱스 문제를 해결할 수 있다. (ArrayIndexOutOfBoundsException 예외를 피할 수 있다.)

(알고리즘 문제 풀 때 저 에러 너무 자주봐서 괴로웠던...ㅠㅠ)

 

아래는 문법이다.

for(자료형 변수명 : 배열명){
	...
}

자료형은 배열의 자료형이다.

 

 String[] arr = {"a","b","c","d"};
   
   for(String s : arr) {
	   System.out.println(s);
   		}

결과

 

평소 사용하던 i 없어도 결과가 나오는 것을 확인할 수 있다.

원리와 어떤 점이 개선되었는지 자세히 설명한 출처는 이쪽 링크로...

https://mommoo.tistory.com/25

 

Java foreach문(향상된 for문)

오늘 포스팅 할 내용은 자바의 foreach문(향샹된 for문으로 부르기도 한다.)에 대해 알아볼 것이다. 보통 for문을 사용할땐 아래와 같이 사용한다. for(int i=0; i

mommoo.tistory.com

 

 

 

 


 

 

 

 

if-else 축약(삼항 연산자)

자바에서 유일하게 피연산자를 세 개나 가지는 조건 연산자이다.

 

문법은 이렇다.

조건식 ? 반환값1 : 반환값2

 

물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환한다.

 

		int num = 3;
		int num2 = 5;
		int a;
		if(num-num2>0) {
			a = 10;
		}else {
			a = 30;
		}

기존 if 문이다. 결과값은 30이다.

 

		int num = 3;
		int num2 = 5;
		int a;
		a = (num-num2>0)? 10 : 30 ;

삼항연산자로 바꿔보았다. 역시나 결과값은 30이다.

코드가 한줄로 줄어들어 간결한 코딩을 할 수 있다! 

'Study > Java' 카테고리의 다른 글

[JAVA] 스택(stack)  (0) 2022.11.22
[JAVA] 내부 클래스  (0) 2022.11.13
[JAVA] 클래스 변수, 인스턴스 변수, 지역 변수  (0) 2022.10.12
[JAVA] 생성자  (0) 2022.10.10
[자료구조] 배열과 리스트의 차이  (0) 2022.10.07