반복문
for문
초기화 - 시작값, 조건식 = 끝 값
for(int i = 1; i <= 10; i++){
}
초기화 : 조건식과 증감식에 사용할 변수 초기화
조건식 : 연산결과가 true이면 블럭 안의 내용을 수행
증감식 : 변수를 증가/감소시켜 반복문을 제어
for문 안에서 만들어진 변수는 for문을 벗어나면 사용할 수 없음. for문 안에서만 사용 가능
for(int i = 1; i <= 10; i++){
System.out.println(i +"번째 반복");}
증가
sum = 0;
for(int i = 1; i <= 10; i++){
sum += i;
}
System.out.println(sum);
감소
sum = 0;
for(int i = 10; i >= 1; i--){
sum += i;
}
System.out.println(sum);
//구구단 출력
/*
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
...
/
sum = 0;
for(int i = 1; i <= 9; i++){
System.out.println(2 + " * " + i + " = " + i * 2);
}
//구구단 9단 출력
for(int i = 1; i <= 9; i++){
System.out.println(9 + " * " + i + " = " + i * 9);
}
//구구단 2단 ~ 9단
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + " * " + j + " = " + i * j);
}
}
//구구단 전체를 가로로 출력해주세요.
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 9; j++) {
System.out.print(j + " * " + i + " = " + i * j + "\t");
}
System.out.println("\n");
}
=> \t 를 입력하면 줄을 맞추어 출력됨
while문
int a = 1;
//a에 2씩 곱해서 1000이상이 되려면 몇번을 곱해야 하는가?
int count = 0;
while(a < 1000){
a *= 2;
count++;
System.out.println(count+ " : " + a);
}
do-while문
숫자 맞추기 게임
int answer = (int)(Math.random() * 100) + 1;
int input = 0;
Scanner s = new Scanner(System.in);
do{
System.out.print("1~100사이의 수를 입력해주세요>");
input = Integer.parseInt(s.nextLine());
if(answer < input){
System.out.println(input + "보다 작습니다.");
}else if(answer > input){
System.out.println(input + "보다 큽니다.");
}else{
System.out.println("정답입니다!!");
}
}while(input != answer);
이름붙은 반복문
outer : for(int i = 2; i <= 9; i++){
for(int j = 1; j <= 9; j++){
if(j == 5){
break; //가장 가까운 반복문 하나를 빠져나간다.
break outer; //outer라는 이름의 반복문을 빠져나간다.
continue; //가장 가까운 반복문의 현재 반복회차를 빠져나간다.
continue outer; //outer라는 이름의 현재 반복회차를 빠져나간다.
}
System.out.println(i + " * " + j + " = " + i * j);
}
System.out.println();
BREAK문
break; //가장 가까운 반복문 하나를 빠져나간다.
break outer; //outer라는 이름의 반복문을 빠져나간다.
continue; //가장 가까운 반복문의 현재 반복회차를 빠져나간다.
continue outer; //outer라는 이름의 현재 반복회차를 빠져나간다.
오늘의 과제 : BASE BALL 게임 만들기
나의 답:
int random100;
int random10;
int random1;
do{
random100 = (int)(Math.random() * 9) + 1;
random10 = (int)(Math.random() * 9) + 1;
random1 = (int)(Math.random() * 9) + 1;
}while(random100 == random10 || random100 == random1 || random10 == random1);
int input100;
int input10;
int input1;
int S = 0;
int B = 0;
int O = 0;
Scanner s = new Scanner(System.in);
do{
S = 0;
B = 0;
O = 0;
System.out.print("백의 자리 숫자를 입력하세요>");
input100 = Integer.parseInt(s.nextLine());
System.out.print("십의 자리 숫자를 입력하세요(0 제외)>");
input10 = Integer.parseInt(s.nextLine());
System.out.print("일의 자리 숫자를 입력하세요(0 제외)");
input1 = Integer.parseInt(s.nextLine());
if(input1 == input10 || input10 == input100 || input1 == input100){
System.out.println("숫자 중복! 다시 입력해주세요.");
}else if(input1 >9 || input10 >9 || input100 >9){
System.out.println("숫자가 너무 큽니다. 다시 입력해주세요.");
}else if(input1 == 0 || input10 == 0 || input100 == 0){
System.out.println("0 말고 다른 숫자를 넣어주세요.");
};
int input = input100 * 100 + input10 * 10 + input1;
if(random100 == input100){ //100의 자리
S++;
}else if(random100 == input10 || random100 == input1){
B++; //random100 !== input100
}
else if (random100 != input10 && random100 != input1){
O++; //random100 !== input10, random100 != input1
}
if(random10 == input10){ //10의 자리
S++;
}else if(random10 == input100 || random10 == input1){
B++; //random100 !== input100
}else if(random10 != input100 && random10 != input1){
O++; //random100 !== input10, random100 != input1
}
if(random1 == input1){ //1의 자리
S++;
}else if(random1 == input10 || random1 == input100){
B++; //random100 !== input100
}else if(random1 != input10 && random1 != input100){
O++; //random100 !== input10, random100 != input1
}
System.out.println(input +" : " + S + "S " + B + "B " + O + "O ");
}while(S != 3);
int random = random100 * 100 + random10 * 10 + random1;
System.out.println("성공!!! " + "정답은 " + random + "입니다!!");
오늘의 리뷰:
정신없었다.
베이스볼게임 만들 수 있는 건가 싶었는데 의외로 잘 풀렸다.
더 꼼꼼하게 복습해야겠다.