while 문
기본형
while(조건식){
작업문장
}
- while 문은 어떤 조건을 정해놓고 반복을 하는 구조이다
- 인터럽트를 건다 = break
- break 문이 걸리기 전까지 while 문은 데몬 프로세스
- continue 문은 반복문에서 현재의 반복을 건너뛰어서 다음 반복으로 넘어가게 함
- while 문을 쓸 때는 조건식에는 true를 쓰고 break로 종료하는 게 제일 깔끔함
정수를 입력받아 양수, 음수, 0인지 알려주고 99를 입력받으면 종료되는 프로그램
package ex03;
import java.util.Scanner;
public class NestedWhile {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("정수를 입력하시오: ");
int number = sc.nextInt();
if (number == 99){
break;
}
if (number > 0) {
System.out.println("양수입니다.");
} else if (number < 0) {
System.out.println("음수입니다.");
} else {
System.out.println("0입니다.");
}
}
}
}
예제
01. -1의 값이 입력될 때까지 합계 계산하기
package ex03;
import java.util.Scanner;
public class GetSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum =0;
while (true) { // if 문을 안쓰고 true 자리에 n != -1을 넣어도 되지만 break로 쓰도록하자
System.out.print("정수를 입력하시오: ");
int n = sc.nextInt();
if (n==-1) {
System.out.println("정수의 합은 "+sum+"입니다.");
break;
}
sum = sum+n;
}
}
}
결과

02. 점수들을 입력받고, 음수를 입력받으면 점수들의 평균을 알려주는 프로그램
package ex03;
import java.util.Scanner;
public class Averager {
public static void main(String[] args) {
int n;
int i=0;
int sum=0;
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("정수를 입력하시오:");
n = sc.nextInt();
if(n < 0){
break;
}
i++;
sum = sum + n;
}
System.out.println("평균은"+(double)sum/i);
}
}
결과

for 문
기본형
for( 초기식; 조건식; 증감식){
작업문장
}
- 반복이 언제까지 하는지 명확히 알고 있을 때 쓴다
package ex03;
public class ForExample1 {
public static void main(String[] args) {
for(int i=0; i<5; i++){
System.out.println("i의 값은:"+i);
}
}
}
예제
01. 정수의 합 계산하기 (1~10)
package ex03;
public class Sum {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum +i;
}
System.out.println("1부터 10까지 정수의 합: " +sum);
}
}
결과

02. 팩토리얼 계산하기 정수를 입력받고 출력한다.
package ex03;
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
long fact = 1;
int n;
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하시요: ");
n = sc.nextInt();
for (int i = 1; i <= n; i++) {
fact = fact*i;
}
System.out.println(n + "!은 " + fact +"입니다.");
}
}
결과

03. 정수를 입력받아 그 정수의 약수를 출력하는 프로그램
package ex03;
import java.util.Scanner;
public class Divisor {
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in);
System.out.print("양의 정수를 입력하시오: ");
n = sc.nextInt();
System.out.println(n + "의 약수는 다음과 같습니다.");
for (int i = 1; i <= n; i++) {
if(n%i == 0){
System.out.print(i+" ");
}
}
}
}
결과

04. 반복문을 중첩하여 *를 10개씩 5줄로 만들어보기
package ex03;
public class NestedLoop {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 10; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
결과

05. 반복문을 이용하여 구구단 작성하기
package ex03;
public class GugudanEx01 {
public static void main(String[] args) {
for (int i = 1; i <10 ; i++) {
for (int j = 1; j < 10; j++) {
System.out.print(i + "x" + j + ": " + j * i + " ");
}
System.out.println();
}
}
}
package ex03.hw;
public class GugudanEx01 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.print(j+"x"+i+"="+i*j+"\t"); // \t는 Tap을 의미
}
System.out.println();
}
}
}
결과


Share article