문제) 1부터 100까지의 수중에서 4의 배수만 출력 한줄에 4개씩 출력. 빈 줄바꿈 지정은 System.out.println(); 이용. while문 이용. 실행 예) 4 8 12 16 20 24 28 32 ...
package com.test;
public class Sample04 { public static void main (String [] args) { /* 내가 짠 코드 //입력 //처리 //출력 int a = 1; while(a<=100) { if (a%4 == 0) { System.out.printf("%d ", a); } if (a%16 == 0) { System.out.println(""); } a++; } */
//입력
//처리 StringBuilder msg = new StringBuilder();
int a = 1; while(a<=100) { if (a%4 == 0) { msg.append(String.format("%3d ", a)); // %3d는 한숫자당 3칸을 고정칸으로 마련해둬라~ } if (a%16 == 0) { msg.append(String.format("%n")); } a++; }
문제) 1부터 100까지의 수중에서 4의 배수만 출력 한줄에 4개씩 출력. 줄 끝에 해당 줄 숫자들의 합을 출력 빈 줄바꿈 지정은 String.format("%n"); 이용. while문 이용. 실행 예) 4 8 12 16 -> 40 20 24 28 31 -> 104 ...
package com.test;
public class Sample05 { public static void main (String [] args) { //입력
//처리 StringBuilder msg = new StringBuilder(); int a = 1; int sum = 0;
while(a<=100) { if (a%4 == 0) { msg.append(String.format("%3d ", a)); sum += a; } if (a%16 == 0) { msg.append(String.format(" -> %d %n", sum)); sum = 0; } a++; }
public class Sample07 { public static void main(String[] args) { StringBuilder msg = new StringBuilder(); Scanner sc = new Scanner(System.in); int sum = 0;
do { //입력 System.out.print("숫자입력(양의 정수)?"); String num = sc.next();
//처리 if (num.equals("-1")){ break; //블럭 탈출문 } msg.append(String.format("%s ", num)); // 문자열 누적 sum += Integer.parseInt(num);
//출력 System.out.printf("%s -> %d %n", msg, sum); } while (true); // 무한 실행 } }
문제) 입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복. 출력된 숫자들의 합을 마지막에 한번 출력 실행 예) 숫자입력(양의 정수)?1 1 숫자입력(양의 정수)?2 1 2 숫자입력(양의 정수)?3 1 2 3 ... 숫자입력(양의 정수)?-1 현재까지 입력된 숫자들의 합: xxxx
package com.test; import java.util.Scanner;
public class Sample08 { public static void main(String[] args) { StringBuilder msg = new StringBuilder(); Scanner sc = new Scanner(System.in); int sum = 0;
do { //입력 System.out.print("숫자입력(양의 정수)?"); String num = sc.next();
//처리 if (num.equals("-1")){ break; //블럭 탈출문 } msg.append(String.format("%s ", num)); // 문자열 누적 sum += Integer.parseInt(num);
//출력 System.out.printf("%s %n", msg); } while (true); // 무한 실행
문제) 입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복. 마지막에 최대값을 출력 실행 예) 숫자입력(양의 정수)?1 1 숫자입력(양의 정수)?2 1 2 숫자입력(양의 정수)?3 1 2 3 ... 숫자입력(양의 정수)?-1 현재까지 입력된 숫자들중에서 최대값: xxxx
package com.test; import java.util.Scanner; public class Sample09 { public static void main(String[] args) { StringBuilder msg = new StringBuilder(); Scanner sc = new Scanner(System.in); int max = 0, data = 0;
do { //입력 System.out.print("숫자입력(양의 정수)?"); String num = sc.next();
//처리 if (num.equals("-1")){ break; //블럭 탈출문 } msg.append(String.format("%s ", num)); // 문자열 누적 data = Integer.parseInt(num); if (data > max) { //최대값구하기 max = data; }
//출력 System.out.printf("%s %n", msg); } while (true); // 무한 실행
//최종 합 출력 System.out.printf("현재까지 입력된 숫자들 중에서 최대값: %d %n", max); } }
문제) 입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복. 마지막에 최대값을 출력 실행 예) 숫자입력(양의 정수)?1 1 숫자입력(양의 정수)?2 1 2 숫자입력(양의 정수)?3 1 2 3 ... 숫자입력(양의 정수)?-1 현재까지 입력된 숫자들중에서 최대값: xxxx 현재까지 입력된 숫자들중에서 최소값: xxxx
package com.test; import java.util.Scanner; public class Sample10 { public static void main(String[] args) { StringBuilder msg = new StringBuilder(); Scanner sc = new Scanner(System.in); int max = 0, min = 0, data = 0;
do { //입력 System.out.print("숫자입력(양의 정수)?"); String num = sc.next();
//처리 if (num.equals("-1")){ break; //블럭 탈출문 } msg.append(String.format("%s ", num)); // 문자열 누적 data = Integer.parseInt(num); if (min == 0) { min = Integer.parseInt(num); } if (data > max) { //최대값구하기 max = data; } if (min > data) { min = data; }
//출력 System.out.printf("%s %n", msg); } while (true); // 무한 실행
//최종 합 출력 System.out.printf("현재까지 입력된 숫자들 중에서 최대값: %d %n", max); System.out.printf("현재까지 입력된 숫자들 중에서 최소값: %d %n", min); } }
package com.test; import java.util.Scanner;
public class Sample10 { public static void main(String[] args) { StringBuilder msg = new StringBuilder(); Scanner sc = new Scanner(System.in); int max = 0, min = Integer.MAX_VALUE, data = 0;
do { //입력 System.out.print("숫자입력(양의 정수)?"); String num = sc.next();
//처리 if (num.equals("-1")){ break; //블럭 탈출문 } msg.append(String.format("%s ", num)); // 문자열 누적 data = Integer.parseInt(num); if (data > max) { //최대값구하기 max = data; } if (min > data) { min = data; }
//출력 System.out.printf("%s %n", msg); } while (true); // 무한 실행
//최종 합 출력 System.out.printf("현재까지 입력된 숫자들 중에서 최대값: %d %n", max); System.out.printf("현재까지 입력된 숫자들 중에서 최소값: %d %n", min); } }
이중 반복문
1. for문이나 while문 등을 겹쳐서 코딩.
for (대입문1; 조건식2 12 19; 증감식11 18) { //(이 부분은 바깥쪽 for문의 영향 범위)
for (대입문3 13; 조건식4 7 10 14 17; 증감식6 9 16) { // 이부분은 안쪽 for문의 영향 범위5 8 15 }
//(이 부분은 바깥쪽 for문의 영향 범위) }
예를 들어, 1부터 10까지 숫자를 출력하는 과정을 보면
for (int a=1; a<=10; a++) { System.out.printf("%d ", a); }