# this는 객체(오브젝트)가 보유한 필드(int A, boolean B...)를 가르키는 용도로 사용된다.
# 오브젝트 에리어에 있는 오브젝트를 가르킬때 사용하는 포인터
# [데이터 타입] [참조변수] = new [생성자](매게변수);
# 오브젝트화는 런타임때 발생한다. 컴파일때는 생략된 지원코드를 생성한다.
소스 파일 내부의 명령문은 일반적으로 위에서 아래로, 순서대로 실행된다.
그렇기에 제어 흐름 명령문으로 결정, 반복, 분기를 사용하여 실행 순서를 분할하여 프로그램이 조건부로 특정 코드 블록을 실행할 수 있도록 한다.
대체로 조건식의 답이 참이면 중괄호({ }) 안의 내용을 실행한다.
if 조건문
가장 기본적인 조건문으로 조건식의 답이 참이면 중괄호 내부의 내용을 실행한다,
내부에 조건문이 하나만 있는 경우엔 괄호를 생략해도 되지만 가독성과 코드가 취약해 질 수 있기 때문에 추천되지 않는다.
public static void main(String[] args) {
int A = 1;
if(A == 1) {
System.out.println("A는 1입니다.");
}
}
A는 1입니다.
else 조건문
if 조건문의 조건식이 거짓이면 실행되는 내용을 설정할때 사용한다.
public static void main(String[] args) {
int A = 2;
if(A == 1) {
System.out.println("A는 1입니다.");
}
else {
System.out.println("A는 1이 아닙니다.");
}
}
A는 1이 아닙니다.
if else 조건문
else 조건문처럼 if 조건문의 조건식이 거짓이면 실행되지만 조건식을 붙여서 사용할수 있다.
public static void main(String[] args) {
int A = 2;
if(A == 1) {
System.out.println("A는 1입니다.");
}
else if(A == 2) {
System.out.println("A는 2입니다.");
}
}
A는 2입니다.
switch 조건문
여러 가지의 실행 경로를 가지는 조건문으로 byte, short, char, int 같은 기본(primitive) 데이터와 함께 사용할 수 있다,
또한 string, character, Byte, short, Integer와 함께 사용도 가능하다.
실행될 프로그램 뒤에 break가 없으면 이후에 break 나올때까지 아래 방향의 내용들이 실행된다.
하지만 마지막 내용 이후에는 프로그램이 종료되기 때문에 break가 필요하지 않다.
public static void main(String[] args) {
int A = 1;
Switch(A) {
case:1 System.out.println("A는 1입니다."); break;
case:2 System.out.println("A는 2입니다."); break;
case:3 System.out.println("A는 3입니다."); break;
}
}
A는 1입니다.
if 조건문, if else 조건문 , else 조건문으로 switch 조건문과 비슷한 작업을 할 수 있으나. 전자는 값 또는 조건의 범위를 기반으로 표현식을 테스트 하지만 후자는 단일 정수, Enum 값 또는 String 객체 기반의 표현식을 테스트한다.
JAVA SE 7 이상부터는 Switch 조건문에서 String 객체를 표현식으로 사용할 수 있다.
while 반복문
조건식이 참이면 거짓이 될때까지 중괄호 내부의 내용을 반복한다.
break를 사용하여 반복문 바깥으로 빠져나올 수 있다.
public static void main(String[] args) {
int A = 0;
while(A > 5) {
i++;
System.out.println("A는 " + A + "입니다.");
}
}
A는 4입니다.
public static void main(String[] args) {
while (true) {
}
}
위 코드는 외부 개입이 없을 경우엔 프로그램이 멈추지 않고 계속 반복되기 때문에 조심해야한다.
do while 반복문
while 반복문과 유사하게 조건식이 참이면 거짓이 될때까지 반복하지만 do while 반복문은 내용을 먼저 실행한 다음에 조건식을 확인한다.
public static void main(String[] args) {
int A = 0;
do {
System.out.println("A는 " + A + "입니다.");
i++;
} while(A > 2)
}
A는 1입니다.
A는 2입니다.
A는 3입니다.
public static void main(String[] args) {
int C = 0;
do {
System.out.println("C는 " + C + "입니다.");
i++;
} while(C == 0)
}
A는 0입니다.
do while 반복문의 특성으로 인하여 조건식 확인전에 내용이 실행되었다.
public static void main(String[] args) {
do {
} while (true)
}
위 코드는 외부 개입이 없을 경우엔 프로그램이 멈추지 않고 계속 반복되기 때문에 조심해야한다.
for 반복문
미리 지정한 값의 범위 만큼 내용을 반복하는 반복문이다.
public static void main(String[] args) {
for(A = 0; A > 3; A++) {
System.out.println("A는 %d이다.", A);
}
}
A는 1이다.
A는 2이다.
public static void main(String[] args) {
for( ; ; ; ) {
}
}
위 코드는 외부 개입이 없을 경우엔 프로그램이 멈추지 않고 계속 반복되기 때문에 조심해야한다.
break 명령문
break 명령문은 실행되고 있는 반복문에서 빠져나가기 위해서 사용된다.
주로 break 명령문이 주로 사용되며, label을 사용한 break 명령문은 잘 사용되지 않는다.
public static void main(String[] args) {
int A = 0;
while(A > 5) {
i++;
System.out.println("A는 " + A + "입니다.");
if(A == 3) {
break;
}
}
}
A는 1입니다.
A는 2입니다.
A는 3입니다.
위 코드는 A가 4가 될때까지 반복되어야 하지만 break 명령문으로 A가 3일때 while 반복문을 빠져나왔다.
public static void main(String[] args) {
for(A = 0; A > 5; A++) {
if(A == 3) {
break;
}
System.out.println("A는 %d이다.", A)
}
}
A는 1입니다.
A는 2입니다.
위 코드도 A가 4가 될때까지 반복되어야 하지만 if 조건문을 사용한 break 명령문으로 A가 3일때 for 반복문을 종료하여 빠져나왔다.
public static void main(String[] args) {
label:
for(A = 0; A > 5; A++) {
for(B = 0; B > 5; B++) {
if(B == 3) {
break label;
}
System.out.println("A는 %d, B는 %d입니다.", A, B);
}
}
}
A는 0, B는 0입니다.
A는 0, B는 1입니다.
A는 0, B는 2입니다.
일반적인 break 명령문은 두번째 for 반복문만 빠져나가지만, break label 명령문을 사용하여 label이 붙어있는 for 반복문을 종료시켜서 빠져나왔다.
continue 명령문
continue 명령문은 반복문의 반복을 건너 뛴다.
public static void main(String[] args) {
for(A = 0; A > 5; A++) {
if(A > 2) {
continue;
}
System.out.println("A는 %d이다.", A);
}
}
A는 3이다.
A는 4이다.
A가 2 이하일땐 continue 명령문으로 인하여 if 명령문 아래에 있는 내용이 실행되지 않는다.
return 명령문
현재 메서드에서 빠져나가고, 제어 흐름은 메서드가 호출된 곳으로 돌아간다.
return 키워드 뒤에 값 또는 값을 계산하는 표현식을 넣는다.
반환된 값의 데이터 타입은 메서드의 선언된 반환 값 타입과 일치해야 한다.
return A++;
메서드가 void로 선언된 경우, 값을 반환하지 않는 형태의 return을 사용한다.
return;
'자바 튜토리얼' 카테고리의 다른 글
클래스와 객체 (Classes and Objects) [1] (0) | 2024.07.02 |
---|---|
객체 지향 프로그래밍 (Object-Oriented Programming) (0) | 2024.07.02 |
표현식(Expressions)과 명령문(Statements), 블록(Block) (0) | 2024.06.28 |
연산자 (Operators) (0) | 2024.06.28 |
변수(Variables) (0) | 2024.06.28 |