티스토리 뷰
for
일반적으로 작성했을 때
public static void main(String[] args) {
int j = 100;
for (int i = 0; i < 10; i++) {
if (j >= 120) {
break;
}
System.out.println(i + ", " + j);
j += 5;
}
}
/* 출력
0, 100
1, 105
2, 110
3, 115
*/
새롭게 알게 된 신기한 방식
: 11버전을 사용하고 있는데 잘 되는 것을 보니 기존부터 존재하는 방식인 듯 싶다.
public static void main(String[] args) {
// 선언, 조건, 반복
for (int i = 0, j = 100; i < 10 && j < 120; i++, j += 5) {
System.out.println(i + ", " + j);
}
}
/* 출력
0, 100
1, 105
2, 110
3, 115
*/
결과는 같은 같은 방식의 코드이다. 하지만 새롭게 알게 된 방식은 , 를 통해서 선언, 반복에 추가 사항을 넣을 수 있다는 것이다.
[ 실험해본 결과 ]
첫번째 선언부에서는 같은 int 타입만 (타입 선언을 제외하고) 설정이 가능했다.
두번째 조건에서는 , 로 구분이 안되서 boolean 값으로 떨어지는 조건만 추가할 수 있는 듯 싶었다.
세번째는 , 로 반복되는 연산 추가가 가능했다.
이런 방식을 뭐라고 부르는지 모르기에 검색이 불가능하여 정확한 방식은 모르겠으나 새로 알게된 신기한 문법이었다.
switch
신기한 작성방식 (java 12, java 13 추가)
: java 11을 사용하고 있어서 실험은 못 해봤다ㅠㅠ
람다식처럼 사용하면 break 없이 switch문을 사용가능하다. ->{} 의 형태로 2줄 이상이라면 코드블럭 사용하면 된다.
class TwoMany {
// 신기한 작성방식
static void howManyRule(int k) {
switch (k) {
case 1 -> System.out.println("one");
case 2 -> System.out.println("two");
case 3 -> System.out.println("many");
}
}
// 일반적인 작성방식
static void howManyGroup(int k) {
switch (k) {
case 1: System.out.println("one");
break; // exit the switch
case 2: System.out.println("two");
break; // exit the switch
case 3: System.out.println("many");
break; // not needed, but good style
}
}
public static void main(String args) {
howManyRule(1);
howManyRule(2);
howManyRule(3);
howManyGroup(1);
howManyGroup(2);
howManyGroup(3);
}
}
/* 출력
one
two
many
one
two
many
*/
코드 출처 : java 13 specification code example
아래 블로그에 가면 yield를 활용하여 return 값을 가지는 switch문 작성방식도 볼 수 있다.
mkyong.com/java/java-13-switch-expressions/
Java 13 - Switch Expressions - Mkyong.com
- Java 13 - Switch Expressions
mkyong.com
정리
마스터즈 코스 그룹리뷰를 하면서 새로운 코드 작성방식도 알게 되어 신기했다. 흔히 사용하는 for, switch문인데 몰랐던 표현들이 나와서 정리해본다. java 상위버전 설치의 귀찮음으로 switch문은 실험해보지 못한 점이 반성할 점이다. 온라인 IDE에서 실험해보려고 여럿 찾아봤지만 온라인에서 최신버전으로 컴파일 해주는 곳은 찾지 못했다.
'Back-end > Java' 카테고리의 다른 글
JVM(Java Virtual Machine) (0) | 2021.01.21 |
---|---|
JUnit5로 테스트코드 작성 시작하기 (0) | 2021.01.03 |
- Total
- Today
- Yesterday
- JS
- Spring
- TIL
- 운영체제
- 글쓰기미션
- 마스터즈코스
- 우아한테크코스
- 학습로그
- 코드스쿼드
- JPA
- java
- 월간회고
- 내부코드
- CS
- 카카오
- javascript
- 알고리즘
- Transaction
- React
- 개발공부일지
- TCP/IP
- 모의면접준비
- 우테코수업
- 회고
- 객체지향
- 인증
- DB
- OS
- python
- 네트워크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |