지식에 대한 투자는 최고의 보상을 가져다 줄 것이다.
- 벤자민 프랭클린
- Switch
if문과 비슷하지만 좀 더 일정한 형식이 있는 조건 판단문
// 입력변수에 올 수 있는 값은 문자, 숫자, enum type
switch (입력변수){
case (입력값):
...
break;
case (입력값):
...
break;
default:
...
}
=======================================================
enum GENDER{
MALE, FEMALE,
}
public class EnhancedSwitch {
public static void main(String[] args) {
GENDER gender = GENDER.FEMALE;
String result = switch (gender){
case MALE -> {
yield "남자입니다";
}
case FEMALE -> "여자입니다";
default -> "중성입니다";
};
System.out.println(result);
}
}
- while 반복문
// 1부터 10까지 총 합을 출력하는 while문을 작성하시오
public class WhileTest {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 10){
sum = sum + i;
System.out.println(sum);
i++;
}
}
}
// 1~10까지의 4의 배수의 합을 구하시오
public class WhileTest {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 10){
if (i%4==0){
sum = sum + i; // sum += i
System.out.println(sum);
}
i++;
}
}
}
/* 이전 두개의 숫자를 더하여 다음 숫자를 만들어가는 프로그램을 작성해보자
ex) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34
총 길이를 10개로 하고 만들어 보자 */
public class WhileTest {
public static void main(String[] args) {
int n = 10;
int first = 0;
int second = 1;
int count = 0;
while (n > count){
System.out.println(first+"");
var next = first + second;
first = second;
second = next;
count++;
}
}
}
// 은행에 예금/출금/조회/종료 하는 프로그램을 작성해보자
=================================================
package ch05.constants;
public class Constants {
public static final int IN_MONEY = 1;
public static final int OUT_MONEY = 2;
public static final int VIEW_MONEY = 3;
public static final int END = 4;
}
아래 코드의 Constants 코드
=================================================
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
var choice = 0;
var balance = 0;
while(choice != Constants.END){
System.out.println("1.예금 | 2.출금 | 3.조회 | 4.종료");
System.out.println("원하는 동작을 선택하세요.");
choice = sc.nextInt();
switch (choice){
case Constants.IN_MONEY -> {
System.out.println("에금액 :");
var money = sc.nextInt();
balance += money;
}
case Constants.OUT_MONEY -> {
System.out.println("출금액 :");
var money = sc.nextInt();
balance -= money;
}
case Constants.VIEW_MONEY -> System.out.println("현재 잔고는 "+ balance + "입니다");
case Constants.END -> System.out.println("안녕히 가십시오");
}
}
}
}
▶ 문제 1. 10개의 정수를 입력받은 다음 1개의 정수를 찾는 프로그램을 작성하라 (중간값을 이용해 점점 범위를 줄여나가는 방식으로)
import java.util.Scanner;
public class BinaryTest {
public static void main(String[] args) {
System.out.println("정수 10개를 오름차순으로 입력하세요");
Scanner sc = new Scanner(System.in);
int i = 0;
int[] arr = new int[10];
while (i < 10){
arr[i] = sc.nextInt();
i++;
}
System.out.println("찾을 숫자를 입력하세요");
int target = sc.nextInt();
int loopCnt = 0;
// length : 배열의 개수를 리턴
int start = 0;
int end = arr.length-1;
boolean bFlag = false;
while (loopCnt < arr.length) {
int mid = (start + end) / 2;
if (target == arr[mid] || target == arr[start] || target == arr[end]) {
bFlag = true;
break; //break 구문은 반복문을 탈출
} else if (target > arr[mid]) start = mid;
else if (target < arr[mid]) end = mid;
loopCnt++;
}
if(bFlag) System.out.println(++loopCnt + "find");
else System.out.println("not in list");
}
}
- do - while
do {
statement...
}while (조건식);
▶ 문제 2. 숫자 맞추기 게임
1~100사이의 숫자를 난수를 발생 시키고
사용자로부터 숫자를 입력받아 해당 난수와 동일하면 게임이 종료되는 프로그램을 작성
만약 난수가 88이고 사용자가 78을 입력했다면
높은 숫자를 입력하세요. 라고 안내문구가 뜨고
그 반대라면 낮은 숫자를 입력하세요 라고 안내 문구를 출력한 다음 재입력을 받는다
총 10번의 기회가 주어지고 찾으면 루프를 탈출한다.
import java.util.Random;
import java.util.Scanner;
public class GameTest {
public static void main(String[] args) {
Random random = new Random();
var answer = random.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
int trys = 10;
System.out.println("1부터 100 사이의 숫자를 맞춰보세요!");
for (int attempt = 1; attempt <= 10; attempt++) {
System.out.print("시도 #" + attempt + ": 입력하세요: ");
var userinput = sc.nextInt();
if (userinput == answer) {
System.out.println("축하합니다! 숫자를 맞췄습니다. 정답은 " + answer + "입니다.");
break;
} else if (userinput < answer) {
System.out.println("높은 숫자를 입력하세요.");
} else System.out.println("낮은 숫자를 입력하세요.");
System.out.println("남은 기회: " + (trys - attempt));
if (attempt == 10) {
System.out.println("게임 오버! 정답은 " + answer + "입니다.");
}
}
}
}
'Java 기초' 카테고리의 다른 글
Java 기초 (4. Overload vs Override) (2) | 2024.03.12 |
---|---|
Java 기초 (연습하기-1) (0) | 2024.03.12 |
Java 기초 (2. 형변환과 연산자, 조건문) (2) | 2024.02.28 |
Java 기초 (1. 메모리와 데이터 타입) (2) | 2024.02.27 |
Java 개론 (0) | 2024.02.26 |