배열

Dec 14, 2023
배열

While문

언제 종료될지 모를 때
한번 실행되면 종료되지 않음
예시) 한번 전구를 키면 엄청 빠른 속도로 깜빡거림. 끝이 없음
💡
데몬 프로세스 : 계속 돌아가는 것
인터럭트 : 데몬을 종료 / 데몬이 실행되고 있을때 방해하는 것
자바의 break
 
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 > 0){ System.out.println("양수입니다."); } else if(number == 0){ System.out.println("0입니다."); } else{ System.out.println("음수입니다."); } } } }
notion image
 

Break


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("0입니다."); } else{ System.out.println("음수입니다."); } } } }
notion image
 
반복문을 빠져나가는 것

Continue


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){ continue; } if(number > 0){ System.out.println("양수입니다."); } else if(number == 0){ System.out.println("0입니다."); } else{ System.out.println("음수입니다."); } } } }
notion image
밑에 코드가 실행되는 것이 아니라 반복문으로 돌아가는 것

For문

종료시점을 알고 있을 때
끝이 정해져 있는 것
예시) 전자레인지에서 음식을 돌리고 종료됨
💡
for(초기식; 조건식; 증감식)
증감식 : i++ 와 i=i+1은 같음
💡
문자열 + 숫자 → 문자열숫자로 결합됨
package ex03; public class ForExample1 { public static void main(String[] args) { for(int i = 0; i <5; i++){ System.out.println("i의 값은: " + i); } } }
notion image

연습문제


1) 정수의 합 계산하기
간단한 예로 1부터 10까지의 정수를 더하여 합을 구하는
프로그램 작성하기
package ex03; public class Sum { public static void main(String[] args) { int sum = 0; for (int i = 1; i < 11 ; i++) { sum += i; } System.out.println("1부터 10까지의 정수의 합 = " + sum); } }
notion image
 
2) 팩토리얼 계산하기
팩토리얼 값을 계산해보자.
팩토리얼이란 다음과 같이 정의된다.
n! = 1 * 2 * 3 * … * n
package ex03; import java.util.Scanner; public class Factorial { public static void main(String[] args) { long fac = 1; //1. 정수 입력받기 System.out.print("정수를 입력하시오: "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //2. 반복문으로 팩토리얼 만들기 for (int i = 1; i < n; i++) { fac = fac * i; } System.out.printf("%d!은 %d입니다.\n", n, fac); } }
notion image
 
3) 약수 계산하기
사용자로부터 양의 정수를 입력받아서 그 정수의 모든 약수를 출력하는 프로그램을 작성하여 보자.
package ex03; import java.util.Scanner; public class Divisor { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 양의 정수 입력받기 System.out.print("양의 정수를 입력하시오: "); int n = sc.nextInt(); //2. 약수 안내하기 System.out.println(n + "의 약수는 다음과 같습니다."); //3.반복문으로 약수 만들기 for (int i = 1; i <= n; i++) { //약수 정의하기 if (n % i == 0) { System.out.print(" " + i); } } } }
notion image
 
4) -1의 값이 입력될 때까지 합계 계산하기
while 문은 조건을 반복할때 사용된다.
-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; int value = 0; while(true){ sum = sum + value; System.out.print("정수를 입력하시오: "); value = sc.nextInt(); if(value == -1){ break; } } System.out.println("정수의 합은 " + sum + "입니다."); } }
notion image
5) 사각형 모양 출력하기
중첩 반복문은 실제 프로그래밍에서 많이 나오는 형태로
특히 사각형과 비슷한 데이터를 처리하는 데 유용하다.
다음 예제는 *기호를 사각형 모양으로 출력한다.
package ex03; public class NestedLoop { public static void main(String[] args) { //1. *이 반복되는 줄 만들기 for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { System.out.print("*"); } System.out.println(""); } } }
notion image
 
6) 점수 평균 구하기
사용자가 입력한 점수들의 평균을 내는 프로그램을 작성한다.
만약 사용자가 음수를 입력하면
break에 의하여 반복 루프가 종료되게 한다.
package ex03; import java.util.Scanner; public class Averager { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int total = 0; int count = 0; while(true) { //1. 점수 입력받기 System.out.print("점수를 입력하시오: "); int grade = sc.nextInt(); //2. 음수일때 브레이크 걸기 if(grade < 0){ break; } //3. 점수들의 총합내기 total += grade; count++; } //4. 평균 출력하기 System.out.println("평균은 " + total / count); } }
notion image
 

구구단(이중 for문)


1) 2~9단까지 출력되는 프로그램 만드시오.
package ex03; import java.util.Scanner; public class GugudanEx01 { public static void main(String[] args) { for (int i = 2; i < 10; i++) { System.out.println("=================="); System.out.println(i + "단"); for (int j = 1; j < 10; j++) { System.out.println(i + "x" + j + "=" + (i * j)); } } } }
notion image
 
2) 스캐너를 이용하여 입력 받은 단만 출력하시오.
package ex03; import java.util.Scanner; public class GugudanEx02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("몇 단 : " ); int i = sc.nextInt(); System.out.println(i + "단"); for (int j = 1; j < 10; j++) { System.out.println(i + "x" + j + "=" + (i * j)); if(j == 9){ break; } } } }
notion image
 
3) “\t”을 사용하여 가로로 출력하기
package ex03; public class GugudanEx03 { public static void main(String[] args) { for (int j = 1; j < 10; j++) { for (int i = 2; i <= 9; i++) { System.out.print(i + "*" + j + "=" + i*j + "\t"); } System.out.println(); // 줄 바꿈 } } }
notion image
 
package ex03; public class GugudanEx03 { public static void main(String[] args) { // 각 단의 헤더 출력 for (int i = 2; i <= 9; i++) { System.out.print(i + "단\t\t\t"); } System.out.println(); // 줄 바꿈 // 각 단의 곱셈 결과를 가로로 출력 for (int i = 1; i <= 9; i++) { for (int j = 2; j <= 9; j++) { System.out.printf("%d * %d = %2d\t", j, i, (i * j)); } System.out.println(); // 한 행이 끝나면 줄 바꿈 } } }
notion image
 
 
 
Share article

vosw1