구현해야 할 반복문부터 만들지 말고 일단 원하는 코드가 정상적으로 작동되는 것을 확인한 후 반복문을 추가하는 형식이 좋다. 기초부터 차근차근.
package study0223;
import java.util.Random;
import java.util.Scanner;
public class BaseballGame {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random num = new Random();
int a = 0;
int b = 0;
int c = 0;
int user = 0;
int userA = 0;
int userB = 0;
int userC = 0;
int strike = 0;
int ball = 0;
int out = 0;
//겹치지 않는 난수 생성기
while(a==b || b==c || c==a) {
a = num.nextInt(9)+1;
b = num.nextInt(9)+1;
c = num.nextInt(9)+1;
}
System.out.println("야구게임을 시작합니다.");
while(true) {
while(user == 0) {
System.out.println("숫자 세자리를 입력하세요.");
user = scan.nextInt();
userC = user%10;
userB = (user%100-userC)/10;
userA = (user-userB-userC)/100;
//Error문
if(user>999 || user<100) {
System.out.println("Error : 세자릿수를 입력하세요.");
user = 0;
continue;
}
if(userA == userB || userB == userC || userC == userA) {
System.out.println("Error : 겹치지 않는 숫자를 입력하세요.");
user = 0;
continue;
}
if(userA == 0 || userB == 0 || userC == 0) {
System.out.println("Error : 0이 포함되지 않도록 하세요.");
user = 0;
continue;
}
}
//a비교문
if(a == userA) {
strike++;
} else if(a == userB || a == userC) {
ball++;
} else {
out++;
}
//b비교문
if(b == userB) {
strike++;
} else if(b == userA || b == userC) {
ball++;
} else {
out++;
}
//c비교문
if(c == userC) {
strike++;
} else if(c == userA || c == userB) {
ball++;
} else {
out++;
}
if(strike == 3) {
System.out.println("정답입니다! 정답 : "+user);
scan.close();
break;
}
System.out.printf("user : %s / %sStrike, %sBall, %sOut\n",user,strike,ball,out);
strike = 0;
ball = 0;
out = 0;
user = 0;
}
}
}
package study0223;
import java.util.Scanner;
public class ArrEx4_ChangeMoney {
public static void main(String[] args) {
Scanner inputMoney = new Scanner(System.in);
int[] coinUnit = {500, 100, 50, 10};
int[] coin = {5, 5, 5, 5};
int count = 0;
//포스기에 가진 돈 표기
System.out.println("보유 금액");
for(int i=0; i<coin.length; i++) {
System.out.printf("%s원:%s개 ",coinUnit[i],coin[i]);
}
//금액 입력란
System.out.printf("\n금액을 입력하세요.\n");
int money = inputMoney.nextInt();
System.out.printf("%s원을 거슬러주는 중..\n\n",money);
//거스름 함수
for(int i=0;i<coinUnit.length; i++) {
if(money/coinUnit[i] > 0) {
if(money/coinUnit[i] <= coin[i]) {
count = money/coinUnit[i];
} else {
count = money/coinUnit[i]-(money/coinUnit[i]-coin[i]);
}
money -= count*coinUnit[i];
coin[i] -= count;
System.out.printf("%s원짜리 동전 %s개 > ",coinUnit[i],count);
System.out.printf("남은 금액 : %s\n",money);
}
}
//성공 or 실패
if(money == 0) {
System.out.println("\n거스름 완료");
} else {
System.out.printf("\n거스름돈이 부족합니다. (%s원 부족)",money);
}
inputMoney.close();
}
}