형식
for(초기화식; 조건식; 증감식) {
// 조건식이 참인경우 실행블럭
}
package chapter05;
public class ForEx {
public static void main(String[] args) {
// 반복 출력 오름차순 ASC : 1~ 10
for (int i=1; i<11; i++) {
System.out.println("i = "+i);
}
// 반복 출력 내림차순 DESC : 10~ 1
for (int i=10; i>0; i--) {
System.out.println("i = "+i);
}
}
}
package chapter05;
public class Gugu {
public static void main(String[] args) {
/*
2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
...
2 * 9 = 18
*/
for (int i=1; i<10; i++) {
System.out.println("2 * " + i + " = " + i);
}
}
}
package chapter05;
public class ForEx2 {
public static void main(String[] args) {
int sum = 0;
// 누적 합계
for (int i=1; i<=100; i++) {
sum += i;
}
System.out.println("합계 : "+sum);
}
}
package chapter06;
public class ForEx {
public static void main(String[] args) {
// 반복 조건 출력 - 짝수만 출력
for (int i=0; i<10; i++) {
if(i % 2 == 0) {
System.out.println("i = "+i);
}
}
}
}
형식
while(조건식) {
// 조건식이 참인경우 실행블럭
}
package chapter05;
public class ForEx {
public static void main(String[] args) {
// 반복 출력
for (int i=0; i<10; i++) {
System.out.println("i = "+i);
}
int i = 0;
while (i<10) {
System.out.println("i = "+i);
i++; // 생략시 무한 루프
}
}
}
package chapter05;
public class Gugu {
public static void main(String[] args) {
/*
2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
...
2 * 9 = 18
*/
for (int i=1; i<10; i++) {
System.out.println("2 * " + i + " = " + 2*i);
}
int i = 1;
while (i<10) {
System.out.println("2 * " + i + " = " + 2*i);
i++; // 생략시 무한 루프
}
}
}
package chapter05;
public class ForEx2 {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=100; i++) {
sum += i;
}
System.out.println("합계 : "+sum);
int i = 1;
while (i<=100) {
sum += i;
i++;
}
System.out.println("합계 : "+sum);
}
}
package chapter05;
public class ForEx3 {
public static void main(String[] args) {
// 반복 조건 출력 - 짝수만 출력
for (int i=0; i<10; i++) {
if(i % 2 == 0) {
System.out.println("i = "+i);
}
}
int i = 0;
while (i<10) {
if(i % 2 == 0) {
System.out.println("i = "+i);
}
i++;
}
}
}
형식
do {
// 최소한 한번은 실행
} while(조건식);
package chapter05;
public class DoWhileEx {
public static void main(String[] args) {
int i = 10;
do {
System.out.println("i = "+i);
}while (i < 10);
}
}
package chapter05;
public class LoopTest1 {
public static void main(String[] args) {
/*
*****
*****
*****
*****
*****
*/
for(int i=1; i<6; i++) {
for(int j=1; j<6; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
package chapter05;
public class LoopTest2 {
public static void main(String[] args) {
/*
11111
22222
33333
44444
55555
*/
for(int i=1; i<6; i++) {
for(int j=1; j<6; j++) {
System.out.print(i);
}
System.out.println();
}
}
}
package chapter05;
public class Gugu2 {
public static void main(String[] args) {
for (int j=2; j<10; j++) {
System.out.println("["+j+"단]");
for (int i=1; i<10; i++) {
System.out.println(j + " * " + i + " = " + j*i);
}
}
}
}
증감식->조건식
, while문에서는 조건식
으로 이동package chapter05;
public class BreakEx {
public static void main(String[] args) {
for (int i=0; i<10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
}
}
package chapter05;
public class BreakEx2 {
public static void main(String[] args) {
// 중첩 반복문의 경우 안쪽 반복문만 중지됨
for (int i=0; i<5; i++) {
for (int j=0; j<5; j++) {
if (j==3) {
break;
}
System.out.println("i="+i+", j="+j);
}
}
}
}
package chapter05;
public class BreakEx3 {
public static void main(String[] args) {
// 중첩 반복문은 중지할 반복문의 이름을 주고 break
target:for (int i=0; i<5; i++) {
for (int j=0; j<5; j++) {
if (j==3) {
break target;
}
System.out.println("i="+i+", j="+j);
}
}
}
}
package chapter05;
public class ContinueEx {
public static void main(String[] args) {
// 5만 건너 띄고 다시 증감->조건 판별 후 진행
for (int i=0; i<10; i++) {
if (i == 5) {
continue;
}
System.out.println(i);
}
// 홀수는 건너 띄고 다시 조건 판별 후 진행
int i = 0;
while (i<10) {
if(i % 2 == 1) {
i++;
continue;
}
System.out.println(i);
i++;
}
}
}
형식
// for
for(;;) {}
// while
while(true) {}
// do ~ while
do {} while(true)
package chapter05;
import java.util.Scanner;
public class LeapYearTest {
public static void main(String[] args) {
/* 윤년 맞추기
*
* 윤년 판별 : 판별식 : 400으로 나눠떨어지거나 4로 나눠떨어지고 100으로는 나눠떨어지지 않을 때
*
*/
while(true) {
System.out.println("연도입력 > ");
Scanner scan = new Scanner(System.in);
String sYear = scan.next();
int year = Integer.parseInt(sYear); // 문자열 => 정수
boolean isLeap = false;
isLeap = (year%4==0 && year % 100 != 0 || year % 400 == 0);
if(isLeap){
System.out.println(year + "년은 윤년입니다.");
}
else{
System.out.println(year + "년은 윤년이 아닙니다.");
}
if(isLeap) {
break;
}
}
}
}
package chapter05;
public class LoopEx {
/*
* 1부터 100까지의 수 중 짝수와 홀수의 합을 각각 구하시오
*
*/
public static void main(String[] args) {
int evenSum = 0;
int oddSum = 0;
for(int i=1; i<=100; i++) {
if(i % 2 == 0) {
evenSum += i;
}else {
oddSum += i;
}
}
System.out.println("evenSum = " + evenSum);
System.out.println("oddSum = " + oddSum);
}
}
class LoopEx {
/*
* 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합
*
*
*/
public static void main(String[] args) {
int sum = 0;
for(int i=1; i <=20; i++) {
if(i%2!=0 && i%3!=0) //i 2 3 sum i . 가 또는 의 배수가 아닐 때만 에 를 더한다
sum +=i;
}
System.out.println("sum="+sum);
} // main
}
public class LoopEx {
/**
* 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10) 의 결과값은
*/
public static void main(String[] args) {
int sum = 0;
int totalSum = 0;
for(int i=1; i <=10; i++) {
sum += i;
totalSum += sum;
}
System.out.println("totalSum="+totalSum);
}
}
package chapter05;
public class LoopEx3 {
/*
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
*
*/
public static void main(String[] args) {
for(int i=1; i<26; i++) {
String p = "";
if(i<10) {
p = i + " ";
}else {
p = i + " ";
}
System.out.print(p);
if(i%5==0) {
System.out.println();
}
}
}
}
package chapter05;
public class LoopEx {
/*
*
**
***
****
*****
*/
public static void main(String[] args) {
String s = "*";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i+1; j++) {
System.out.print(s);
}
System.out.println();
}
}
}
package chapter05;
public class LoopEx {
/*
* 두 개의 주사위를 던졌을 때 눈의 합이 6이 되는 모든 경우의 수
*
*/
public static void main(String[] args) {
for(int i=1;i<=6;i++) {
for(int j=1;j<=6;j++) {
if(i+j==6) {
System.out.printf("(%s, %s)", i,j);
}
}
}
}
}
// A,B
//(1,1) (1,2) (1,3) (1,4) (1,5), (1,6)
//(2,1) (2,2) (2,3) (2,4) (2,5), (2,6)
//(3,1) (3,2) (3,3) (3,4) (3,5), (3,6)
//(4,1) (4,2) (4,3) (4,4) (4,5), (4,6)
//(5,1) (5,2) (5,3) (5,4) (5,5), (5,6)
//(6,1) (6,2) (6,3) (6,4) (6,5), (6,6)
package chapter05;
public class LoopEx {
/*
* 2x+4y=10 방정식의 해 x y, 범위 0<=x<=10, 0<=y<=10
*
*/
public static void main(String[] args) {
for(int x=0; x <=10;x++) {
for(int y=0; y <=10;y++) {
if(2*x+4*y==10) {
System.out.println("x="+x+", y="+y);
}
}
}
}
}
package chapter05;
import java.util.Scanner;
public class LoopEx {
/*
* 난수 값 맞추기
*
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int number = (int)(Math.random()*100)+1;
int inNumber = 0;
do{
System.out.println("숫자를 입력하세요...");
inNumber = scan.nextInt();
if(inNumber == number){
System.out.println("맞혔습니다.");
break;
}
else if(inNumber < number){
System.out.println("숫자가 너무 작아요.");
}
else {
System.out.println("숫자가 너무 커요.");
}
}
while(true);
}
}
package chapter05;
import java.util.Scanner;
public class BaseBallVar {
public static void main(String[] args) {
String s = "%sS %sB %sO %n";
int com1 = 0;
int com2 = 0;
int com3 = 0;
while(true) {
com1 = (int)(Math.random() * 10);
com2 = (int)(Math.random() * 10);
com3 = (int)(Math.random() * 10);
boolean b = (com1 == com2 || com1 == com3 || com2==com3);
if(!b) {
break;
}
}
System.out.printf("%s%s%s%n",com1,com2,com3);
// 중복체크 필요
int user1 = 0;
int user2 = 0;
int user3 = 0;
int count = 0;
// 중복체크 필요
Scanner scan = new Scanner(System.in);
while(true) {
count++;
int strike = 0;
int ball = 0;
int out = 0;
while(true) {
user1 = scan.nextInt();
user2 = scan.nextInt();
user3 = scan.nextInt();
boolean b = (user1 == user2 || user1 == user2 || user2==user3);
if(!b) {
break;
}
}
if(com1 == user1) {
strike++;
}else if(com1 == user2) {
ball++;
}else if(com1 == user3) {
ball++;
}
if(com2 == user1) {
ball++;
}else if(com2 == user2) {
strike++;
}else if(com2 == user3) {
ball++;
}
if(com3 == user1) {
ball++;
}else if(com3 == user2) {
ball++;
}else if(com3 == user3) {
strike++;
}
out = 3 - (strike + ball);
System.out.printf(s,strike,ball,out);
if(strike == 3) {
break;
}
}
System.out.println("시도>>"+count+"번 빙고!!");
}
}