Java Programming
package com.encore.loop;
import java.util.Scanner;
/*
while (조건식) {
statement;
[증감식 or 분기문]
}
증감식 값이 없으면 무한루프
필요에 따라서 while(true) 무한 반복을 유도할 수 있다.
초기값;
do {
statement;
[증감식 or 분기문]
} while (조건식);
while(true) - 무한루프
do ~ while (false) - 한번 수행
*/
public class LoopDemo02 {
// default constructor
public LoopDemo02() {
}
// 1 ~ 난수(100)까지의 합을 구하고 싶다.
public void sumRandom() {
int nan = (int) (Math.random() * 100) + 1;
System.out.println("nan = " + nan);
int sum = 0;
for (int idx = 1; idx <= nan; idx++) {
sum += idx;
}
System.out.println("sum = " + sum);
}
// 난수 두 개를 발생시켜서 최솟값부터 최댓값까지의 합을 구하고 싶다면?
public void sumRandomTow() {
int nan1 = (int) (Math.random() * 100) + 1;
int nan2 = (int) (Math.random() * 100) + 1;
int max = nan1;
int min = nan2;
int sum = 0;
System.out.println("nan1 = " + nan1);
System.out.println("nan2 = " + nan2);
if (nan2 > max) {
max = nan2;
min = nan1;
}
for (int i = min; i <= max; i++) {
sum += i;
}
System.out.println("sum = " + sum);
}
// A ~ Z 출력하는 구문을 작성한다면?
public void charPrint(char start, char end) {
for (int i = (int) start; i <= (int) end; i++) {
System.out.printf("%c \t", i);
}
}
// 1 ~ 100 사이의 홀수의 합을 출력하다면?
public void sumOdd() {
int sum = 0;
for (int i = 1; i <= 100; i += 2) {
sum += i;
}
System.out.println("sum = " + sum);
}
// 1 ~ 100 사이의 난수 발생시킨 후 짝수의 개수가 몇개인지 출력한다면?
public void countEven() {
int cnt = 0;
int nan1 = (int) (Math.random() * 100) + 1;
int nan2 = (int) (Math.random() * 100) + 1;
System.out.println("nan1 = " + nan1);
System.out.println("nan2 = " + nan2);
if (nan1 >= nan2) {
for (int i = nan2; i <= nan1; i++) {
if (i % 2 == 0) {
cnt++;
}
}
} else {
for (int i = nan1; i <= nan2; i++) {
if (i % 2 == 0) {
cnt++;
}
}
}
System.out.printf("짝수의 개수는 %d개 입니다.", cnt);
}
// 매개변수로 문자열을 입력받아서 문자를 하나씩 추출하여 출력하고 싶다면?
public void splitString(String str) {
System.out.println("args -> " + str);
for (int i = 0; i < str.length(); i++) {
System.out.print(str.charAt(i) + " ");
}
}
// Scanner를 이용해서 값을 입력받고 1부터 차례로 누적해서 합을 구하다가 입력한 값을 넘으면 중단하고
// 마지막으로 더해진 값과 그 때까지의 합을 출력하고 싶다면?
// 입력예) 100
// 출력예) 14 105
public void sumBreak() {
Scanner sc = new Scanner(System.in);
System.out.print("입력값 : ");
int num = sc.nextInt();
int sum = 0;
for (int i = 0; i < num; i++) {
sum += i;
if (sum > num) {
System.out.println("마지막으로 더해진 값 : " + i);
System.out.println("지금까지의 합 : " + sum);
break;
}
}
}
public void nestedFor() {
for (int row = 0; row < 10; row++) {
// System.out.println("row idx = " + row);
for (int col = 0; col < 10; col++) {
// System.out.print(col + "\t");
System.out.print("*");
}
System.out.println();
}
}
public void gugudan() {
for (int dan = 2; dan <= 9; dan++) {
System.out.printf(">>>> %d 단 <<<<", dan);
System.out.println();
for (int number = 1; number <= 9; number++) {
System.out.print(dan + " * " + number + " = " + dan * number + "\t");
}
System.out.println();
}
}
public void gugudanTable() {
for (int dan = 2; dan <= 9; dan++) {
System.out.printf(">>>> %d 단 <<<<", dan);
System.out.println();
gugudanTimes(dan);
}
}
private void gugudanTimes(int dan) {
for (int number = 1; number <= 9; number++) {
System.out.print(dan + " * " + number + " = " + dan * number + "\t");
}
System.out.println();
}
// i, j 변수만 출력(5 * 5)
public void printIJ() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print(j);
}
System.out.println();
}
}
public void forLine() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print(i + j);
}
System.out.println();
}
}
// break, continue
// break : 가장 가까운 루프구문을 빠져나가는 명령어
// continue : 조건에 만족할 경우 실행을 하지 않고 다음 차례로 이동시키는 명령어
public void gugudan02() {
for (int dan = 1; dan <= 9; dan++) {
System.out.printf(">>>> %d 단 <<<<", dan);
System.out.println();
for (int number = 1; number <= 9; number++) {
System.out.print(dan + " * " + number + " = " + dan * number + "\t");
}
if (dan == 5) {
break;
}
System.out.println();
}
}
// while
public void whileOneToTen() {
int idx = 1;
while (idx <= 10) {
System.out.print(idx + "\t");
idx++;
}
}
// Scanner로부터 문자열을 입력받아서 for, while 구문으로 입력된 문자열의 각 문자의 인덱스와 문자를 쌍으로 출력
public void printStrIdx() {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int idx = 0;
for (int i = 0; i < str.length(); i++) {
System.out.println(i + " : " + str.charAt(i));
}
System.out.println();
while (idx < str.length()) {
System.out.println(idx + " : " + str.charAt(idx));
idx++;
}
}
public void doWhileTest() {
System.out.println("do ~ while");
do {
System.out.println("false이지만 한번은 무조건 수행");
} while (false);
}
}
import com.encore.loop.LoopDemo02;
public class LoopMain02 {
public static void main(String[] args) {
LoopDemo02 demo = new LoopDemo02();
// demo.sumRandom();
// demo.sumRandomTow();
// demo.charPrint('A', 'Z');
// demo.sumOdd();
// demo.countEven();
// demo.splitString("JavaProgramming");
// demo.sumBreak();
// demo.nestedFor();
// demo.gugudan();
// demo.gugudanTable();
// demo.printIJ();
// demo.forLine();
// demo.gugudan02();
// demo.whileOneToTen();
// demo.printStrIdx();
demo.doWhileTest();
}
}
'한화시스템 BEYOND SW캠프 > TIL' 카테고리의 다른 글
[5주차] 24.02.05 월요일 (0) | 2024.02.05 |
---|---|
[4주차] 24.02.02 금요일 (0) | 2024.02.02 |
[4주차] 24.01.31 수요일 (0) | 2024.01.31 |
[4주차] 24.01.30 화요일 (0) | 2024.01.30 |
[4주차] 24.01.29 월요일 (0) | 2024.01.29 |