#4 JAVA_제어문

정진형·2021년 11월 11일
0

JAVA

목록 보기
4/4
post-thumbnail

Java 1.8, Eclipse Photon, Window10

  1. 제어문
  • 위에서 아래로만 흐르던 코드의 흐름을 제어하기 위해 사용하는 문장
  • 조건문(선택제어문)
    if ~ else if ~ else, switch ~ case ~ default
  • 반복문(반복제어문)
    while, for
  1. 조건문
  • 조건에 따라 경우의 수를 나눌 때 사용
  • 흐름을 나누거나 선택지를 주어줄 때 사용
  • 특정한 상태를 물어볼때 사용

2-1. if문

if(조건식1){
	조건식1의 연산결과가 참일 때 실행
    	...
}else if(조건식2) {
	조건식2의 연산결과가 참일 때 실행
    	...
}
...
else{
	위의 조건식들이 모두 거짓일 때 실행
    	...
}

//조건식 중 하나가 참이라면 안의 내용을 실행한 후 아래 내용을 하지 않고 세트로 탈출한다
//else if와 else문은 생략이 가능하다

2-2. switch문

  • 경우의 수가 변수에 담긴 값을 등가비교로 인해 나뉠 때 사용 변수에 담긴 값에 따라 안맞은 case로 이동하고 문장을 실행한다
switch(변수){
case1:
	변수엥 담긴 값이 값1일 때 실행할 문장
    break;
case1:
	변수엥 담긴 값이 값1일 때 실행할 문장
    break;
...
default:
	위의 값들이 아닐 때 실행할 문당
}
  1. 기타 연산자
  • break : 속해있는 switch문이나 반복문을 탈출한다
  • continue : 속해있는 switch문이나 반복문의 처음으로 돌아간다
  1. 누적 대입 연산자(복합 대입 연산자, 누적 연산자)
  • +=, -=, /=, %=
int data = 10;
System.out.println(data+5);	--> 15
System.out.println(data);	--> 10

int data = 10;
data = data+5;
data +=5;	//data에 5만큼 더해서 넣어라 위와 같은 문장

data += 3+2;	//+(산술연산자)를 먼저 연산 한 후 +=(대입연산자) 진행

String msg ="A";
msg = msg + "B";	//"AB" msg += "B" 가능
msg = "B" + msg;	//"BA" msg += "B" 불가능
  1. 증감 연산자
data += 1; --> data++;
data -= 1; --> data--;

5-1. 전위형

  • 연산을 먼저하고 실행문을 실행한다
++data;				//10
System.put.println(++data);	//11
System.put.println(++data);	//11

5-2. 후위형

  • 실행문을 먼저 실행하고 연산을 수행한다
data++;						//10
System.put.println(++data);	//11
System.put.println(++data);	//11
  1. 반복문
  • 특정한 코드나 행위를 반복해야 할 때 사용하는 문장
  • 조건의 의한 반복문 while, do~while
  • 횟수의 의한 반복문 for

6-1. while문

  • 조거의 의한 반복문
  • 선평가 후실행
while(조건식){
	조건식의 연산 결과가 참이라면 반복 실행
}

6-2. do while문

  • 조건에 의한 반복문
  • while문과 같지만 무조건 한번은 실행한다
  • 선실행 후평가
do{
	조건식의 연산 결과가 참이라면 반복 실행
}while(조건식);

6-3. 무한반복

while(true){
	무한반복할 문장
}

// while문 뒤의 () 안에는 조건식, 즉 boolean 타입의 값이 와야한다
// 따라서 그 안에 true 값을 넣을 수가 있고, 그 값은 상수로 작성했지 때문에 변하지 않는다
//따라서 그 while문은 무한으로 반복하게 된다
//안에서 특정한 조건일때를 if문으로 부여해주고 그 때 break를 이용한 탈춝구를 하나 이상 만들어 주어야 한다

6-4. for문

  • 횟수에 의한 반복문
  • 반복문 반복횟수가 특정된 경우에 사용한다
  • for문은 안에소 초기식 때 선언한 변수를 사용할 수 있고 그 변수의 값은 매 반복마다 일정하게 변하게 된다
  • 무언가 값이 일정하게 변하는 반복이 필요하다면 99.99% for문을 사용한다
for(초기식;조건식;증감식){
	수행할 문장
}

//초기식 : 새로운 변수 하나 선언 **(for문 내부에서 그 변수를 사용 가능)**
//조건식 : for문 내부를 반복시작 하기 전에 항상 검사하는 조건식 검사
//증감식 : 변수의 값을 증가, 혹은 감소 시키는 식

/*
* System.out.println(1);
* System.out.println(2);
* System.out.println(3);
* ...
* System.out.println(10);
*/

for(int i = 0; i <= 10; i++){
	System.out.println(i);
}
  1. 제어문 활용
//if문
//입력
Scanner sc = new Scanner(System.in);
System.out.print("정수 : ");
int num = sc.nextIntln();

//처리 출력(분기처리)
if(num>0) {
	System.out.println("양수입니다.");
}else if(num<0) {
	System.out.println("음수입니다.");
}else {
	System.out.println("0입니다.");
}

//일괄처리
String result = "0입니다.";
if(num>0) {
	System.out.println("양수입니다.");
}else if(num<0) {
	System.out.println("음수입니다.");
}
//else {
//	System.out.println("0입니다.");
//}

System.out.println(result);

//switch문
Scanner sc = new Scanner(System.in);
System.out.print("다음 중 프로그래밍 언어가 아닌것은?\n1. 파이썬\n2. 자바\n3. 망둥어\n4. C언어");
int choice = sc.nextInt();

switch(choice) {
case3 :
	System.out.println("정답입니다!");
        break;
case1 :
	System.out.println("오답입니다...");
    break;
case2 :
	System.out.println("오답입니다...");
	break;
case4 :
	System.out.println("오답입니다...");
    	break;
default
	System.out.println("올바른 번호를 입력하세요.");	
	break;    
}

//일괄처리
switch(choice) {
case3 :
	System.out.println("정답입니다!");
	break;     
case1 :
case2 :
case4 :
	System.out.println("오답입니다...");
	break;
default
	 System.out.println("올바른 번호를 입력하세요.");	
}

//문자열도 가능
String btype = "";
switch(btype) {
case "A":
	break;
case "B":
	break;
}

//while문
Scanner sc = new Scanner(System.in);
int choice = 0;

while(choice != 3) {
    System.out.println("다음 중 프로그래밍 언어가 아닌것은?\n1. 파이썬\n2. 자바\n3. 망둥어\n4. C언어");
    choice = sc.nextInt();
    
    if(choice == 3) {
    	System.out.println("정답입니다.");
    }else if(choice == 1 || choice == 2 || choice == 4) {
    	System.out.println("오답입니다.");
    }else {
    	System.out.println("올바른 번호를 입력하세요.");
    }
}

//do while문
do {
    System.out.print("다음 중 프로그래밍 언어가 아닌것은?\n1. 파이썬\n2. 자바\n3. 망둥어\n4. C언어\n0. 나가기");
    choice = sc.nextInt();
    
    if(choice == 3) {
    	System.out.println("정답입니다.");
    }else if(choice == 1 || choice == 2 || choice == 4) {
    	System.out.println("오답입니다.");
    }else if(choice == 0) {
    	System.out.println("안녕히 가세요.");
    }else {
    	System.out.println("올바른 번호를 입력하세요.");
    }
}while(choice != 0);

//무한반복
while(true){
    System.out.print("다음 중 프로그래밍 언어가 아닌것은?\n1. 파이썬\n2. 자바\n3. 망둥어\n4. C언어\n0. 나가기");
    choice = sc.nextInt(); 	
    
    if(choice == 3) {
    	System.out.println("정답입니다.");
    }else if(choice == 1 || choice == 2 || choice == 4) {
    	System.out.print("오답입니다.");
    }else if(choice == 0) {
    	System.out.println("안녕히 가세요.");
        break;
    }else {
    	System.out.println("올바른 번호를 입력하세요.");
    }
}

//for문
//while문으로 표현가능 하지만 편의를 위해 for문을 쓴다
int i = 0;
while(i<10) {
    System.out.println("정진형");
    i++;
}

//0부터 9까지
//for문에 조건을 사용한 변수(i)를 그대로 실행문에 사용할 수 있다
for(int i = 0; i < 10; i++) {
    System.out.println(i);
}

//20부터 1씩 감소하면 10번
for(int i = 20; i > 10; i--) {
    System.out.println(i);
}

//0 3 6 9 12 15 18 21 24 27 30 33
for(int i = 0; i < 36; i+=3) {
    System.out.println(i);
}

//100부터 -2씩 14번 반복
//14 = (x-100) / -2
//-28 = x-100
//x = 72
for(int i = 100; i < 72; i-=2) {
    System.out.println(i);
}

0개의 댓글