반응형
반복문
: 제어문 처음으로 돌아가 반복 실행하는 문장이다.
ex) for 문, while 문, do - while 문
for 문
: 주어진 횟수만큼 반복하고 싶을 경우 사용한다.
사용법은 아래와 같다.
초기화식 : 시작 조건
조건식 : 종료 조건
증감식 : 반복시 실행
for(초기화식; 조건식; 증감식) {
실행 문장;
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method1();
}
public void method1() {
/*
* 반복문
* for, while
*
* i = 0 <- 초기화식 : 시작조건
* i < 10 <- 조건식 : (종료 조건)
* i++ <- 증감식 : 반복시 실행
*/
System.out.println("for 문이 시작 됩니다.");
for(int i=0; i<5; i++) { // 0부터 4까지 증가함
System.out.println(i);
}
System.out.println("for 문이 종료 됩니다.");
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method2();
}
public void method2() {
/*
* 1 ~ 10까지의 합을 구하시오.
*/
int sum = 0;
// sum += 1;
// sum += 2;
// sum += 3;
// sum += 4;
// sum += 5;
for (int i=0; i<=10; i++) {
sum+=i;
}
System.out.println("1 ~ 10까지의 합은 : " + sum);
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method3();
}
public void method3() {
/*
* 1 ~ 10 부터의 홀수의 합을 구하시오.
* i % 2 == 1
*/
int sum = 0;
for(int i=1; i<=10; i++) {
if(i%2 == 1) {
sum += i;
System.out.println(i + ", " + sum);
}
}
System.out.println("1 ~ 10까지의 홀수의 합은 : " + sum);
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method4();
}
public void method4() {
/*
* 1 ~ 10 부터의 짝수의 합을 구하시오.
*/
int sum = 0;
// for(int i=1; i<=10; i++) {
// if(i%2 == 0) {
// sum += i;
// System.out.println(i + ", " + sum);
// }
// }
for (int i=2; i<=10; i=i+2) {
sum += i;
System.out.println(i + ", " + sum);
}
System.out.println("1 ~ 10까지의 짝수의 합은 : " + sum);
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method5();
}
public void method5() {
/*
* 1 ~ 100 까지 홀수의 합을 구하시오.
* 1 ~ 100 까지 짝수의 합을 구하시오.
*/
int sum_h = 0;
int sum_j = 0;
for(int i=0; i<=100; i++) {
if(i%2 == 1) sum_h += i; // 홀수일때
else sum_j += i; // 짝수일때
}
System.out.println("1 ~ 100 까지 홀수의 합은 : " + sum_h);
System.out.println("1 ~ 100 까지 짝수의 합은 : " + sum_j);
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method6();
}
public void method6() {
/*
* 1. 내 이름을 입력하고
* 2. 숫자를 입력해서 입력된 숫자 만큼 내 이름이 출력되게 할 것.
*
* ex) 양형운
* 2
*
* -> 양형운
* 양형운
*/
System.out.print("내 이름을 입력하세요 : ");
String name = sc.next();
System.out.print("숫자를 입력하세요 : ");
int num = sc.nextInt();
for(int i=0; i<num; i++) {
System.out.println(name);
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method7();
}
public void method7() {
/*
* 스캐너를 통해 문자열을 입력 받고
* 문자들은 한글자(char 이용)씩 출력해보기()
* abcd -> 0번째 문자 : a
* 1번째 문자 : b
* 2번째 문자 : c
* 3번째 문자 : d
*/
String input = sc.next();
int length = input.length();
char eng;
for(int i=0; i<length; i++) {
eng = input.charAt(i);
System.out.println(i + "번째 문자 : " + eng);
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method8();
}
public void method8() {
/*
* 1 부터 내가 입력한 숫자까지의 곱을 구하시오.
*/
System.out.print("숫자를 입력하세요 : ");
int num = sc.nextInt();
long result = 1l; // int로 할 시 20을 곱하면 마이너스(-)가 나옴. int의 범위보다 큰 값이 나와서 그럼
// int 의 범위보다 넘는 값이 나오는 현상을 오버플로어 라고 한다.
for(int i=1; i<=num; i++) {
result *= i;
}
System.out.println("1 부터 " + num + " 까지의 곱은 " + result + "입니다.");
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample01 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample01 obj = new ForExample01();
obj.method9();
}
public void method9() {
int n = 100;
for( ; ; ) {
System.out.println("오버플로우 발생");
break; // 반복문을 빠져나옴
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample02 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample02 obj = new ForExample02();
obj.method1();
}
public void method1() {
// A 부터 Z 까지 알파벳을 모두 출력하시오.
int num = 'A';
// for(int i=0; i<26; i++) {
// char eng = (char)(num+i);
// System.out.println("알파벳: " + eng);
// }
for(char i='A'; i<='Z'; i++) {
System.out.println("알파벳: " + i);
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample02 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample02 obj = new ForExample02();
obj.method2();
}
public void method2() {
// A 부터 내가 입력한 알파벳까지 출력하시오.
// ex ) C -> ABC
System.out.print("알파벳을 입력하세요 : ");
String str = sc.nextLine();
char eng = str.charAt(0);
for(char i='A'; i<=eng; i++) {
System.out.println("알파벳: " + i);
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample03 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample03 obj = new ForExample03();
obj.method1();
}
public void method1() {
/*
* 구구단 출력해보기.
* scaner로 입력 받은 숫자의 구구단 출력해보기.
*/
System.out.println("몇 단의 구구단을 출력하시겠습니까?");
int num = sc.nextInt();
for(int i=1; i<10; i++) {
System.out.println(num + " x " + i + " = " + num*i);
}
}
}
이중 for 문
: for 문 안에 또 다른 for 문이 있는 문장을 말한다.
사용법은 아래와 같다.
초기화식 : 시작 조건
조건식 : 종료 조건
증감식 : 반복시 실행
for(초기화식; 조건식; 증감식) {
for(초기화식; 조건식; 증감식) {
실행 문장;
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample02 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample02 obj = new ForExample02();
obj.method3();
}
public void method3() {
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
System.out.println("i : " + i + " j : " + j);
}
System.out.println("------i끝------");
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample02 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample02 obj = new ForExample02();
obj.method4();
}
public void method4() {
/*
* 내가 입력한 숫자만큼 세모가 출력되게 해볼것.
* *
* **
* ***
* ****
*/
System.out.print("숫자를 입력하시오 : ");
int num = sc.nextInt();
for(int row=0; row<num; row++) {
for(int j=0; j<row+1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample03 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample03 obj = new ForExample03();
obj.method2();
}
public void method2() {
/*
* 구구단 전체 출력해보기.
*/
for(int i=2; i<10; i++) {
for(int j=1; j<10; j++) {
System.out.println(i + " x " + j + " = " + i*j);
}
System.out.println();
}
}
}
+ break문 응용
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample03 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample03 obj = new ForExample03();
obj.method3();
}
public void method3() {
int stop = sc.nextInt();
for(int i=2; i<10; i++) {
for(int j=1; j<10; j++) {
System.out.println(i + " x " + j + " = " + i*j);
}
System.out.println();
if(i == stop) { // 입력 받은 숫자의 단까지만 출력 후 반복문을 빠져나옴
break;
}
}
}
}
package kr.or.ddit.study04.sec02;
import java.util.Scanner;
public class ForExample03 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ForExample03 obj = new ForExample03();
obj.method4();
}
public void method4() {
/*
* 내가 입력한 단을 출력하지 않고
* 다음단 출력 계속 이어서 진행
*/
int dan = sc.nextInt();
for(int i=2; i<=9; i++) {
if(dan == i) continue; // 해당 조건에 맞을 때 하단의 코드를 진행하지 않고 다음 for을 진행함
for(int j=1; j<=9; j++) {
System.out.println(i + " x " + j + " = " + i*j);
}
System.out.println();
}
}
}
TIP
for 문을 진행할 때 값을 하나하나 찍기에 번거롭다면 디버깅 모드를 사용하는 것이 좋다.
1. 벌레 모양을 클릭하여 디버깅 모드로 전환한다.
2. 키보드 F8을 눌러 반복문을 진행한다.
반응형
'자바' 카테고리의 다른 글
[Java 초급] 8장 반복문 while문, do-while문 (0) | 2023.12.11 |
---|---|
[Java 초급] 7.5장 테스트 (0) | 2023.12.08 |
[Java 초급] 6.5장 테스트 (0) | 2023.12.08 |
[Java 초급] 6장 조건문 (0) | 2023.12.07 |
[Java 초급] 5.5.2장 테스트2 (2) | 2023.12.07 |