삼항 연산자

(조건식) ? (참일 때 오는 부분) : (거짓일 때 오는 부분)
조건식 ? 참일때의 값 : 거짓일때의 값
삼항 연산자는 사용부분 통째로 값
경우의 수가 두 가지일 때 사용하는것이 좋다.

import java.util.Scanner;

public class OperTest {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		// 입력
		System.out.print("정수를 입력하세요 : ");
		int num = sc.nextInt();
		
		// 처리
		String result = num > 0 ? "양수입니다." : (num < 0 ? "음수입니다." : "0입니다.");
		
		// 출력
		System.out.println(result);
	
		
			
		}
		
	}

}

제어문

위에서 아래로만 흐르던 코드의 흐름을 제어하기 위해 사용하는 문장

  • 조건문(선택제어문)
    if ~ else if ~ else
    switch ~ case ~ default

  • 반복문(반복제어문)
    while
    for

조건문

  • 조건에 따라 경우의 수를 나눌 때
  • 흐름을 나누어 줄 때
  • 선택지를 주어줄 때
  • 특정한 상태를 물어볼 때(입력한 번호가 3이니? 비밀번호가 "apple"이니?)

if문

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

조건식 중 참인것을 만나면 그 내부를 수행하고 세트를 탈출한다.
else if와 else문은 생략이 가능하다.
import java.util.Scanner;

public class Quiz {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("1. C언어");
		System.out.println("2. 파이썬");
		System.out.println("3. 망둥어");
		System.out.println("4. 자바");
		System.out.print("다음중 프로그래밍 언어가 아닌것은 ?");
		int num = sc.nextInt();
		
		
		if(num == 3) {
			System.out.println("정답입니다!");
		} else if(num == 1 || num == 2 || num == 4) {
			System.out.println("오답입니다.");
		} else {
			System.out.println("잘못입력했습니다.");
		}

switch문

  • 경우의 수가 변수의 값의 등가 비교로 인해 나뉠 때 사용

  • 변수에 담긴 값에 따라 알맞은 case로 이동하고 문장을 실행한다. 하지만 그 밑에 case가 더 있다면 그 안에있는 문장들도 실행된다. 따라서 각 케이스들을 나누어 주려면 알맞게 break;를 사용해야 한다.

    	switch(변수){
    	case 값1:
    		변수에 담긴 값이 값1 일 때 실행
    		break;
    	case 값2:
    		변수에 담긴 값이 값2 일 때 실행
    		break;
    	...
    	default:
    		변수에 담긴 값이 위의 값들이 아닐 때 실행
    	}
 import java.util.Scanner;

public class Quiz {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("1. C언어");
		System.out.println("2. 파이썬");
		System.out.println("3. 망둥어");
		System.out.println("4. 자바");
		System.out.print("다음중 프로그래밍 언어가 아닌것은 ?");
		int num = sc.nextInt();
        
        switch (num) {
		case 3:
			System.out.println("정답입니다.");
			break;
		case 1: case 2: case 4:
			System.out.println("오답입니다.");
			break;
		default:
			System.out.println("응애");
			break;
		}	
	}
}

기타 제어

break	: 속해있는 switch문이나 반복문을 탈출한다.
continue : 해당되는 것을 건너뛴다.

누적 대입 연산자(복합 대입 연산자, 누적 연산자)

+=, -=, *=, /=

int data = 10;
data = data+5;

data += 5;	//data에 5만큼 더해서 넣어라!

String msg = "A";
msg = msg+"B";	//"AB"	msg += "B" 로 줄이기 가능
msg = "B"+msg;	//"BA"	복합대입연산자로 줄이기 불가능

증감 연산자

++, --

(data += 1) >> data++;
(data -= 1) >> data--;
  • 전위형
    변수를 사용하기 전에 증감시키기
    ++data;

    	data = 10;
    	syso(++data);	//11
    	syso(data);	//11
    	
  • 후위형
    변수를 사용하고 그 다음에 증감시키기
    data++;

    		data = 10;
    		syso(data++);	//10
    		syso(data);	//11

반복문

특정한 코드나 행위를 반복해야 할 때 사용하는 문장

  • 조건에 의한 반복문
    while, do~while
  • 횟수에 의한 반복문
    for

while문

조건에 의한 반복문

	while(조건식){
		조건식의 연산결과가 true일동안 반복할 문장
	}

do ~ while문

while문과 동일하지만 무조건 한번은 실행한다.

	do{
		조건식의 연산결과가 true일동안 반복할 문장
	}while(조건식);
import java.util.Scanner;

public class StudyJava {

	public static void main(String[] args) {
//		for(int i = 1; i <= 10; i++) {
//			System.out.println("안유진"); 
//		}
//		
		
		int input = 0, answer = 0;
		
//		answer = (int)(Math.random() * 100) + 1; // 1~100 사이의 임의의 수를 저장
		answer = (int)'A';
		Scanner sc = new Scanner(System.in);
		
		do {
			System.out.print("점수를 기록하시요 : ");
			input = sc.nextInt();
			
			if(input > answer) {
				System.out.println("금메달");
			} else if(input == answer) {
				System.out.println("은메달");
			} else if(input < answer) {
				System.out.println("동메달"); 
			}
		} while(input != answer);
		System.out.println("정답입니다");
	}
}

무한반복 whlie

while문 뒤의 () 안에는 조건식, 즉 boolean 타입의 값이 와야한다.
따라서 그 안에 true라는 값을 넣을 수가 있고, 그 값은 상수로 작성했기
때문에 변하지 않는다. 따라서 그 while문은 무한정으로 반복하게 된다.

내부에서 특정한 조건일때를 if문으로 만들고 break를 통해 탈출할 수
있도록 탈출구 하나 이상을 만들어 주어야 한다.

    while(true){
		무한반복할 문장
	}
import java.util.Scanner;

public class WhileTest {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int choice = 0;
		
		while(true) {
			System.out.println("1. 김민주");
			System.out.println("2. 소미");
			System.out.println("3. 윈터");
			System.out.println("4. 미연");
			System.out.print("다음 아이즈원 멤버는 ?");
			int num = sc.nextInt();
			
			if(choice == 3) {
				System.out.println("정답입니다.");
			} else if(choice == 1 || choice == 2 || choice == 4) {
				System.out.println("오답입니다.");
			} 
			else {
				System.out.println("응애");
			}
			if(choice == 3) break;
		}
	}

}
→ if(choice == 3) break;으로 무한문 탈출!!

for문

반복 횟수를 알고 있을 경우 주로 사용한다.(가장 많이 사용)

반복문 기본원리
1. for 반복문을 만나면 초기식으로 초기값을 설정한다.
2. 조건식을 확인하고 참이면 {} 중괄호 안의 내용을 수행
3. } 닫는 중괄호를 만나면 증감식으로 이동한다.
4. 조건식을 다시 확인하고 참이면 반복, 거짓이면 for문을 종료한다.

※ for문 예제

	package day06;

import java.util.Scanner;

public class Exam02 {

	public static void main(String[] args) {
		int sum = 0;
		for(int i = 0; i < 10; i ++) {
			sum = sum + i;
			System.out.println("중간결과 :" + sum);
		}
		System.out.println("최종결과 :" + sum);
       // 출력 : 55
       } 
     }
  
profile
최선을 다하자!!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN