1. 조건문
if문
: 만약 조건식이 참(true)이면 괄호{} 안의 문장들을 수행
if (조건식) {
// 조건식이 참일 때 수행될 문장 작성
}
if - else문
: 만약 조건식이 참(true)이면 if문 수행, 거짓(false)이면 else문 수행
if (조건식) {
// 조건식이 참일 때 수행될 문장
} else {
// 조건식이 거짓일 때 수행될 문장
}
if - else if문
: 경우의 수가 3가지 이상인 경우 사용
if (조건식1) {
// 조건식1이 참일 때 수행될 문장
} else if (조건식2) {
// 조건식1이 거짓 & 조건식2가 참일 때 수행될 문장
} else if (조건식3) {
// 조건식1, 조건식2가 거짓 & 조건식3이 참일 때 수행될 문장
} else {
// 위의 어느 조건식도 만족하지 않을 때 수행될 문장
}
switch문
: 조건식을 계산해서 결과와 일치하는 case문으로 이동하여 이후의 문장들 수행
- 제약조건 1. switch문의 조건식 결과는 정수 or 문자열 2. case문의 값은 정수 상수만 가능, 중복 x |
switch (조건식) {
case 값1 :
// 조건식의 결과가 값1일 때 수행될 문장
break;
case 값2 :
// 조건식의 결과가 값1일 때 수행될 문장
break;
default :
// 조건식의 결과와 일치하는 case문 없을 때 수행될 문장
break;
}
- 가위바위보 게임
- 조건식 : user - com - if 조건식 값 == 1 or -2, user 승 else if 조건식 값 == 2 or -1, com 승 else, 무승부 |
import java.util.*;
public class FlowEx {
public static void main(String[] args) {
int user;
int com;
Scanner scanner = new Scanner(System.in);
System.out.print("가위(1), 바위(2), 보(3) 중 하나를 입력하세요.>");
user = scanner.nextInt();
com = (int)(Math.random() * 3) + 1;
System.out.printf("당신은 %d입니다.%n", user);
System.out.printf("컴은 %d입니다.%n", com);
switch (user - com) {
case 0:
System.out.println("비겼습니다.");
break;
case 1:
case -2:
System.out.println("당신이 이겼습니다.");
break;
case 2:
case -1:
System.out.println("컴이 이겼습니다.");
}
}
}
- 문자열 요소 pop
문자열.charAt(n) : 문자열의 n번째 문자 pop
import java.util.*;
public class FlowEx2 {
public static void main(String[] args) {
String id;
char gender;
Scanner scanner = new Scanner(System.in);
System.out.print("당신의 주민번호를 입력하세요.(011231-1111222)>");
id = scanner.nextLine();
gender = id.charAt(7);
switch (gender) {
case '1':
System.out.println("당신은 2000년 이전에 출생한 남자입니다.");
case '3':
System.out.println("당신은 2000년 이후에 출생한 남자입니다.");
break;
case '2':
System.out.println("당신은 2000년 이전에 출생한 여자입니다.");
case '4':
System.out.println("당신은 2000년 이후에 출생한 여자입니다.");
break;
default:
System.out.println("주민번호를 잘못 입력하였습니다. 다시 입력하세요.");
}
}
}
2. 반복문
: 반복되는 조건문
for문
: 반복 횟수를 알고 있을 때 적합
for (초기화; 조건식; 증감식) {
// 조건식이 참일 때 수행될 문장
}
- 별 피라미드
import java.util.*;
public class LoopEx {
public static void main(String[] args) {
int line;
Scanner scanner = new Scanner(System.in);
System.out.print("*을 출력할 라인의 수를 입력하세요.>");
line = scanner.nextInt();
for (int i = 0; i < line; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
향상된 for문(JDK1.5 이상부터)
: 배열, 컬렉션에 저장된 요소 접근 시 사용
for (타입 변수명 : 배열 or 컬렉션) {
// 반복할 문장
}
예시)
int[] arr = {10, 20, 30, 40, 50};
int sum = 0;
for (int i : arr) {
System.out.printf("%d ", i);
sum += i;
}
System.out.println();
System.out.println("sum="+sum);
while문
while (조건식) {
// 반복할 문장
}
do - while문
: 최소 한 번 이상의 수행이 필요한 경우 사용. 특히 메뉴 표시할 때 주로 사용
do {
// 반복할 문장
} while (조건식);
※ 마지막에 반드시 ; 넣을 것
- 3.6.9 게임
조건식 : if(clap %10%3 == 0 && clap % 10 != 0), print("짝"); |
import java.util.*;
public class LoopEx2{
public static void main(String[] args) {
int clap;
for (int i = 1; i <= 100; i++) {
System.out.printf("i=%d ", i);
clap = i;
do {
if (clap%10%3==0 && clap %10 != 0) {
System.out.print("짝");
}
} while ((clap/=10) != 0);
System.out.println();
}
}
}
- break문
: break문이 포함된 가장 가까운 반복문 벗어남
int i = 0;
int sum = 0;
while (true) {
i++;
sum += i;
if (sum > 100)
break; // if문의 조건문을 만족하면 while문 탈출
}
System.out.println("i="+i);
System.out.println("sum="+sum);
- continue문
: 반복문 도중에 continue문을 만나면 아래 문장을 수행하지 않고 다음 반복으로 넘어감
for (int j = 1; j <= 10; j++) {
if (j % 3 == 0) {
continue; // if문을 만족하면 아래 print문 수행하지 않고 다음 반복으로 넘어감
}
System.out.println(j);
}
- 이름 붙은 반복문
- 계산기
import java.util.*;
public class LoopEx3{
public static void main(String[] args) {
int menu, num;
Scanner scn = new Scanner(System.in);
outer:
while (true) {
System.out.println("(1) square");
System.out.println("(2) square root");
System.out.println("(3) log");
System.out.print("원하는 메뉴(1~3)를 선택하세요.(종료:0)>");
menu = scn.nextInt();
if (menu == 0) {
System.out.println("프로그램을 종료합니다.");
break outer;
}
else if (!(menu >= 1 && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다.(종료는 0)");
continue;
}
inner:
while(true) {
System.out.print("계산할 값을 입력하세요.(계산 종료:0, 전체 종료:99)>");
num = scn.nextInt();
if (num == 0)
break inner;
else if (num == 99)
break outer;
switch (menu) {
case 1:
System.out.printf("result=%d%n", num*num);
continue;
case 2:
System.out.printf("result=%.1f%n", Math.sqrt((double)num));
continue;
case 3:
System.out.printf("result=%.1f%n", Math.log((double)num));
continue;
}
}
}
}
}
'Back-end > JAVA' 카테고리의 다른 글
[JAVA] 객체지향 프로그래밍(2) - 상속, 오버라이딩, Package와 import, 제어자, 다형성, 추상클래스, 인터페이스 (1) | 2023.09.16 |
---|---|
[JAVA] 객체지향 프로그래밍(1) - 클래스와 객체, 변수와 메서드, 오버로딩, 생성자, 초기화 (0) | 2023.09.09 |
[JAVA] 연산자 - 단항 연산자, 이항 연산자, 삼항 연산자 (0) | 2023.02.17 |
[JAVA] 변수, 변수의 타입, 입출력, 형변환 (0) | 2023.02.14 |
[JAVA] 이클립스(eclipse) 알아두면 좋은 단축키 모음 (0) | 2023.02.10 |