(조건식) ? (참일 때 오는 부분
) : (거짓일 때 오는 부분
)
조건식 ? 참일때의 값 : 거짓일때의 값
삼항 연산자는 사용부분 통째로 값
경우의 수가 두 가지일 때 사용하는것이 좋다.
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
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("잘못입력했습니다.");
}
경우의 수가 변수의 값의 등가 비교로 인해 나뉠 때 사용
변수에 담긴 값에 따라 알맞은 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(조건식){
조건식의 연산결과가 true일동안 반복할 문장
}
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("정답입니다");
}
}
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;으로 무한문 탈출!!
반복 횟수를 알고 있을 경우 주로 사용한다.(가장 많이 사용)
반복문 기본원리
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
}
}