- 어떤 작업이 반복적으로 수행되도록 할때 사용된다
- 반복문은 주어진 조건이 만족하는 동안 문장을 반복수행한다.
- for문: 반복횟수를 알고 있을때
- while문: 반복횟수를 모를 때 -> 문제 난이도가 더 높다
for loop
for(초기화;조건식;증감식){
조건식이 만족할때 수행될 문장;
}
- 수행순서
- 초기화 -> 조건식 -> 반복문장 실행 -> 증감식
- -> 조건식 -> 실행 -> 증감 -> 조건식 -> ... -> 조건 불일치시 종료
for 예시
int sum = 0
for(int num = 5;num < 17;num++){
sum += num;
}
int sum = 0;
for(int num=3;num < 43;num++){
if(num%2 == 0){
sum += num;
}
}
int sum = 0;
for(int num = 8;num < 57;num++){
if(num%2 == 0 || num%3 == 0){
sum += num;
}
}
for 구구단
for(int num = 2;num < 10;num++){
System.out.println(2+"*"+num+"="+2*num);
}
for(int dan = 2;dan < 10;dan++){
for(int num = 1;num < 10;num++){
System.out.println(dan+"*"+num+"="+dan*num)
}
}
while loop
- 반복횟수를 알수 없을때 많이 사용. (알때 사용해도 상관없으나 for문이 더 편함)
- 조건식과 수행해야할 블럭{}만으로 구성되어 있다.
while(조건식){
조건식이 true일때 수행될 문장
}
while 예시
int num = 3;
int sum = 0;
while(num < 16){
sum += num;
num++;
}
int num = 1;
int sum = 0;
while(num < 101){
if(num%4 == 0){
sum += num;
}
num++;
}
int sum = 0;
int num = 5;
while(true){
sum += num;
if(sum>=100){
break;
}
num++;
}
int sum = 0;
int num = 4;
while(sum < 100){
num++;
sum += num;
}
while 구구단
int num = 1;
while(num < 10){
System.out.println(2 + "*" + num + "=" + 2*num);
num++;
}
int dan = 2;
int num = 1;
while(dan < 10){
while(num < 10){
System.out.println(dan + "*" + num + "=" + dan*num);
num++;
}
dan++;
}
do-while loop
- while문의 변형으로 기본구조는 while문과 비슷하다.
- 하지만 최소1회는 블럭{}을 수행하게 된다.
do{
수행될 문장
}while(조건식);
do-while 예시
String input = null;
do{
System.out.println("문자열을 입력해주세요");
input = sc.next();
System.out.println(input);
}while(!"exit".equals(input));
스캐너
import java.util.Scanner;
public class Sentence_03{
public static voide main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("문자열을 입력해주세요");
String input = sc.next();
System.out.println(input);
System.out.println("숫자를 입력해주세요");
int input = sc.nextInt();
System.out.println("입력하신 숫자는 "+input+"입니다.")
}
}
스캐너 예시
System.out.println("첫번째 숫자를 입력해주세요");
int input1 = sc.nextInt();
System.out.println("두번째 숫자를 입력해주세요");
int input2 = sc.nextInt();
if(input1<input2){
for(int num = input1;num < (input2+1); num++){
sum += num;
}
}else if(input1==input2){
?
}else{
for(int num = input2;num < (input1+1); num++){
sum += num;
}
}
System.out.println("두 숫자 사이의 합은 "+sum+"입니다.");
계산기 만들기 (스캐너 + do-while)
do{
System.out.println("첫번째 숫자를 입력하세요");
int firNum = sc.nextInt();
System.out.println("사칙연산을 입력하세요");
String buho = sc.next();
System.out.println("두번째 숫자를 입력하세요");
int secNum = sc.nextInt();
if("+".equals(buho)){
System.out.println(firNum+secNum);
}
else if("-".equals(buho)){
System.out.println(firNum-secNum);
}
else if("*".equals(buho)){
System.out.println(firNum*secNum);
}
else if("/".equals(buho)){
System.out.println((int)((float)firNum/secNum*100+0.5)/100f);
}else{
System.out.println("사칙연산 아님. 종료.");
break;
}
}while(true);