SW/Java

Java : 자바 제어문, 제어흐름 : 개요, 개념, 설명

얇은생각 2023. 2. 21. 07:30
반응형

Java : 자바 제어문, 제어흐름 : 개요, 개념, 설명

 

 

Java 제어문 | Java의 제어 흐름

Java 컴파일러는 코드를 위에서 아래로 실행합니다. 코드의 문은 나타나는 순서에 따라 실행됩니다. 그러나 Java는 Java 코드의 흐름을 제어하는 데 사용할 수 있는 문을 제공합니다. 이러한 문을 제어 흐름 문이라고 합니다. 프로그램의 원활한 흐름을 제공하는 자바의 기본 기능 중 하나다.

Java는 세 가지 유형의 제어 흐름 문을 제공합니다. 

 

의사 결정문

- if 문

- switch 명령문

 

반복문

- do while 문

- while 문

- for 문

- for-each 문

 

점프문

- 브레이크 문

- continue 문

 

 

의사 결정문

이름에서 알 수 있듯이 의사 결정 문은 실행할 문과 시기를 결정합니다. 의사 결정문은 제공된 조건의 결과에 따라 부울 식을 평가하고 프로그램 흐름을 제어합니다. Java에는 If 문과 switch 문 두 가지 유형의 의사 결정 문이 있습니다.

 

 

1) If 문

Java에서 "if" 문은 조건을 평가하는 데 사용됩니다. 특정 조건에 따라 프로그램 제어가 전환됩니다. If 문의 조건은 true 또는 false 중 하나의 부울 값을 제공합니다. Java에서는 아래에 제시된 네 가지 유형의 if 문이 있습니다.

- if 문

- if else 문

- if else if 문

- 내포된 if-문

 

1) 단순 if 문은 다음과 같습니다.

Java의 모든 제어 흐름 명령문 중 가장 기본적인 명령문입니다. 부울 식을 평가하고 식이 참이면 프로그램이 코드 블록을 입력할 수 있도록 합니다.

아래에 if 문의 구문이 나와 있습니다.

if(condition) {    
statement 1; //executes when condition is true   
}

 

 

Java 코드에서 if 문을 사용한 다음 예를 고려하십시오.

public class Student {    
public static void main(String[] args) {    
int x = 10;    
int y = 12;    
if(x+y > 20) {    
System.out.println("x + y is greater than 20");    
}    
}      
}

 

 

2) if-else 명령문

if-else 문은 if-문의 확장으로, 다른 코드 블록, 즉 else 블록을 사용합니다. if-block의 조건이 false로 평가될 경우 else block이 실행됩니다.

if(condition) {    
statement 1; //executes when condition is true   
}  
else{  
statement 2; //executes when condition is false   
}

 

 

다음 예를 생각해 보십시오.

public class Student {  
public static void main(String[] args) {  
int x = 10;  
int y = 12;  
if(x+y < 10) {  
System.out.println("x + y is less than      10");  
}   else {  
System.out.println("x + y is greater than 20");  
}  
}  
}

 

 

3) if else if 문

if-else-if 문에는 if-문 다음에 여러 else-if 문이 포함됩니다. 즉, 조건이 참인 코드 블록에 프로그램이 들어갈 수 있는 결정 트리를 만드는 것은 if-else 문의 연쇄라고 할 수 있습니다. 체인 끝에 else 문을 정의할 수도 있습니다.

if-else-if 문의 구문은 아래에 나와 있습니다.

if(condition 1) {    
statement 1; //executes when condition 1 is true   
}  
else if(condition 2) {  
statement 2; //executes when condition 2 is true   
}  
else {  
statement 2; //executes when all the conditions are false   
}

 

 

public class Student {  
public static void main(String[] args) {  
String city = "Delhi";  
if(city == "Meerut") {  
System.out.println("city is meerut");  
}else if (city == "Noida") {  
System.out.println("city is noida");  
}else if(city == "Agra") {  
System.out.println("city is agra");  
}else {  
System.out.println(city);  
}  
}  
}

 

 

4) 내포된 if-문

내포된 if-문에서 if 문은 다른 if 또는 if-if 문 안에 if 또는 if-else 문을 포함할 수 있습니다.

중첩된 if-문의 구문은 아래에 나와 있습니다.

if(condition 1) {    
statement 1; //executes when condition 1 is true   
if(condition 2) {  
statement 2; //executes when condition 2 is true   
}  
else{  
statement 2; //executes when condition 2 is false   
}  
}

 

 

다음 예를 생각해 보십시오.

public class Student {    
public static void main(String[] args) {    
String address = "Delhi, India";    
    
if(address.endsWith("India")) {    
if(address.contains("Meerut")) {    
System.out.println("Your city is Meerut");    
}else if(address.contains("Noida")) {    
System.out.println("Your city is Noida");    
}else {    
System.out.println(address.split(",")[0]);    
}    
}else {    
System.out.println("You are not living in India");    
}    
}    
}

 

 

 

스위치 문

Java에서 Switch 문은 if-else-if 문과 유사합니다.

switch 문에는 case라는 코드 블록이 여러 개 포함되어 있으며 단일 case가 switch되는 변수를 기반으로 실행됩니다. if-else-if 문 대신 switch 문을 사용하는 것이 더 쉽습니다. 또한 프로그램의 가독성을 향상시킵니다.

스위치 문에 대해 주의해야 할 사항은 다음과 같습니다.

- 대문자 변수는 int, short, byte, char 또는 열거형일 수 있습니다. Java 버전 7 이후 문자열 유형도 지원됩니다.

- 대/소문자는 중복될 수 없습니다.

- 기본 문은 대소문자가 식 값과 일치하지 않을 때 실행됩니다. 선택 사항입니다.

- Break 문은 조건이 충족되면 스위치 블록을 종료합니다.

- 선택 사항이며, 사용하지 않을 경우 다음 사례가 실행됩니다.

- switch 문을 사용하는 동안 대/소문자 식이 변수와 동일한 유형이어야 합니다. 그러나 이 값은 상수 값이기도 합니다.

 

 

switch 문을 사용하는 구문은 다음과 같습니다.

switch (expression){  
    case value1:  
     statement1;  
     break;  
    .  
    .  
    .  
    case valueN:  
     statementN;  
     break;  
    default:  
     default statement;  
}

 

  

스위치 문의 흐름을 이해하려면 다음 예를 고려하십시오.

public class Student implements Cloneable {  
public static void main(String[] args) {  
int num = 2;  
switch (num){  
case 0:  
System.out.println("number is 0");  
break;  
case 1:  
System.out.println("number is 1");  
break;  
default:  
System.out.println(num);  
}  
}  
}

 

 

switch 문을 사용하는 동안 대/소문자 식이 변수와 동일한 유형이어야 합니다. 그러나 이 값은 상수 값이기도 합니다. 스위치는 int, string 및 Enum 유형 변수만 사용할 수 있도록 허용합니다.

 

 

 

반복문

프로그래밍에서, 때때로 우리는 어떤 조건이 참으로 평가되는 동안 코드 블록을 반복적으로 실행해야 합니다. 그러나 반복문은 명령 집합을 반복 순서로 실행하는 데 사용됩니다. 명령 집합의 실행은 특정 조건에 따라 달라집니다.

자바에서는 비슷하게 실행되는 세 가지 유형의 루프가 있습니다. 그러나 구문과 상태 확인 시간에는 차이가 있습니다.

1. for loop

2. while loop

3. do-while loop

 

 

루프 문을 하나씩 이해해보겠습니다.

 

 

 

Java for loop

자바에서 for 루프는 C와 C++와 유사합니다. 루프 변수를 초기화하고, 조건을 확인하고, 코드 한 줄에서 증감할 수 있습니다. 우리는 횟수를 정확히 알 때만 for loop을 사용하며, 코드 블록을 실행하고자 합니다.

for(initialization, condition, increment/decrement) {    
//block of statements    
}

 

 

for-loop에 대한 흐름도가 아래에 나와 있습니다.

Java : 자바 제어문, 제어흐름 : 개요, 개념, 설명 2

 

 

Java에서 for 루프의 올바른 작동을 이해하려면 다음 예를 고려하십시오.

public class Calculattion {  
public static void main(String[] args) {  
// TODO Auto-generated method stub  
int sum = 0;  
for(int j = 1; j<=10; j++) {  
sum = sum + j;  
}  
System.out.println("The sum of first 10 natural numbers is " + sum);  
}  
}

 

 

 

각 루프에 대해 Java를 사용

Java는 어레이 또는 컬렉션과 같은 데이터 구조를 가로지르는 루프를 개선했습니다. 각 루프에서 루프 변수를 업데이트할 필요가 없습니다. Java에서 for-each 루프를 사용하는 구문은 다음과 같습니다.

for(data_type var : array_name/collection_name){    
//statements    
}

 

 

Java에서 각 루프에 대한 기능을 이해하려면 다음 예를 고려하십시오.

public class Calculation {    
public static void main(String[] args) {    
// TODO Auto-generated method stub    
String[] names = {"Java","C","C++","Python","JavaScript"};    
System.out.println("Printing the content of the array names:\n");    
for(String name:names) {    
System.out.println(name);    
}    
}    
}

 

 

 

Java while 루프

while 루프는 또한 문의 수에 대해 여러 번 반복하는 데 사용됩니다. 그러나 반복 횟수를 미리 알 수 없는 경우에는 wailed 루프를 사용하는 것이 좋습니다. 루프와 달리 초기화 및 증분/감소는 while 루프에서 루프 문 안에서 발생하지 않습니다.

루프 시작 시 조건이 확인되므로 엔트리 제어 루프라고도 합니다. 조건이 참이면 루프 본문이 실행되고, 그렇지 않으면 루프 뒤의 문이 실행됩니다.

while 루프의 구문은 아래에 나와 있습니다.

while(condition){    
//looping statements    
}

 

 

while 루프의 흐름도는 다음 이미지에 나와 있습니다.

Java : 자바 제어문, 제어흐름 : 개요, 개념, 설명 3

 

 

다음 예를 생각해 보십시오.

public class Calculation {    
public static void main(String[] args) {    
// TODO Auto-generated method stub    
int i = 0;    
System.out.println("Printing the list of first 10 even numbers \n");    
while(i<=10) {    
System.out.println(i);    
i = i + 2;    
}    
}    
}

 

 

 

Java do-while 루프

do-while 루프는 루프 문을 실행한 후 루프 끝의 상태를 확인합니다. 반복 횟수를 알 수 없고 루프를 한 번 이상 실행해야 할 때 do-while 루프를 사용할 수 있습니다.

조건을 미리 확인하지 않기 때문에 출구 제어 루프라고도 합니다. 실행 중 루프의 구문은 아래에 나와 있습니다.

do     
{    
//statements    
} while (condition);

 

 

Do-while 루프의 흐름도는 다음 이미지에 나와 있습니다.

Java : 자바 제어문, 제어흐름 : 개요, 개념, 설명 4

 

 

Java에서 do-while 루프의 기능을 이해하려면 다음 예를 고려하십시오.

public class Calculation {    
public static void main(String[] args) {    
// TODO Auto-generated method stub    
int i = 0;    
System.out.println("Printing the list of first 10 even numbers \n");    
do {    
System.out.println(i);    
i = i + 2;    
}while(i<=10);    
}    
}

 

 

 

점프 문

점프 문은 프로그램의 제어를 특정 문으로 전송하는 데 사용됩니다. 즉, 점프 문은 실행 제어를 프로그램의 다른 부분으로 전달합니다. Java에는 break과 continue의 두 가지 점프 문이 있습니다.

 

 

자바 브레이크 스테이트먼트

이름에서 알 수 있듯이 break 문은 프로그램의 현재 흐름을 차단하고 루프 또는 스위치 문 외부의 다음 문으로 컨트롤을 전송하는 데 사용됩니다. 그러나 중첩된 루프의 경우 내부 루프만 끊어집니다.

브레이크 문은 Java 프로그램에서 독립적으로 사용할 수 없습니다. 즉, 루프 또는 스위치 문 안에서만 쓸 수 있습니다.

for 루프와 함께 break 문을 사용한 다음 예를 생각해 보십시오.

public class BreakExample {  
  
public static void main(String[] args) {  
// TODO Auto-generated method stub  
for(int i = 0; i<= 10; i++) {  
System.out.println(i);  
if(i==6) {  
break;  
}  
}  
}  
}

 

 

break 문 예제: 루프에 대한 레이블이 있습니다.

public class Calculation {    
    
public static void main(String[] args) {    
// TODO Auto-generated method stub    
a:    
for(int i = 0; i<= 10; i++) {    
b:    
for(int j = 0; j<=15;j++) {    
c:    
for (int k = 0; k<=20; k++) {    
System.out.println(k);    
if(k==5) {    
break a;    
}    
}    
}    
    
}    
}    
    
    
}

 

 

 

Java continue 문

break 문과 달리 continue 문은 루프를 끊지 않는 반면, 루프의 특정 부분을 건너뛰고 루프의 다음 반복으로 바로 이동합니다.

Java에서 continue 문의 기능을 이해하려면 다음 예를 고려하십시오.

public class ContinueExample {  
  
public static void main(String[] args) {  
// TODO Auto-generated method stub  
  
for(int i = 0; i<= 2; i++) {  
  
for (int j = i; j<=5; j++) {  
  
if(j == 4) {  
continue;  
}  
System.out.println(j);  
}  
}  
}  
  
}
반응형