パスカル:DoWhile
キャメル:doWhile
do~ while
制御変数;
do{
true_反復対象;
制御変数 増減式
} while(制御変数_条件式);
必ず一度は反復対象を反復する。
i = 100;
do {
System.out.printf("%d x %d = %d\n" , val, i, val*i);
i++;
}
while(i<=9);
7 x 100 = 700
falseでも、trueでも一度はループする。
それなら、なぜ使用するか?
主に、メニュー画面を使用する時、使われる。
for (回数的に明確な際に活用)
初期値 最後の値 増減値
for(制御変数初期化 ; 制御変数の条件式 ; 増減式){
true_反復対象;
}
上で初期化する場合もある。
for(; 制御変数の条件式 ; 増減式){
true_反復対象;
}
for(; ; 増減式){
true_反復対象;
}
package oop20230713;
public class For1 {
public static void main(String[] args) {
//7단 구구단 출력하기(곱셈 수식 9회 출력)
int i;
int val = 7;
for(i=1; ; ) {
System.out.printf("%d x %d = %d\n" , val, i, val*i); //반복대상
}
}
}
7 x 1 = 7
.
.
.
7 x 1 = 7
7 x 1 = 7
「いつも遂行しろ。」という意味だ。(無限ループ)
累積アルゴリズム
累積する変数を指定し、必ず0もしくは1に初期化する。
そのあと、増減演算子を活用する。
// 프로그래밍 기초 알고리즘 : 갯수와 누적
// (1) 1(이상) ~ 10(이하)의 짝수의 갯수 출력
int count = 0;
for(int i = 1; i<=10; i++) {
if(i%2 ==0) {
count++;
}
}
System.out.println("1~10 사이의 짝수의 갯수 : " + count);
System.out.println();
1~10 사이의 짝수의 갯수 : 5
カウントする回数を増減式に表現。
// (2) 1 ~ 100(이하) 사이의 홀수와 짝수의 합계
int oddSum = 0;
int evenSum= 0;
for(int i = 1; i<=100; i++) {
if(i%2 == 1) {
oddSum += i;
}
else
evenSum += i;
}
System.out.println("홀수의 합 : " +oddSum);
System.out.println("짝수의 합 : " +evenSum);
System.out.println();
//(3) 1 ~ 5 (이하) 사이의 정수의 누적 곱셈의 결과
int result = 1;
for(int i =1; i<=5; i++) {
result *= i;
}
System.out.println("1~5 사이의 정수의 누적 곱셈 : " + result);
//(4) 누적 곱셈(누승) -> 팩토리얼 : 5! = 5*4*3*2*1 = 1*2*3*4*5 = 120
int fac = 1;
for(int n =5; n>=1; n--) {
fac *= n;
}
System.out.println();
System.out.println("5! : " + fac);
//(5) for문 1개를 이용하여 다음과 같이 출력하기
System.out.println(); //줄바꿈(개형, newline)
System.out.printf("\n"); //줄바꿈(개형, newline)
int cnt =0;
for(char ch = 'A'; ch <= 'Z'; ch++) {
System.out.print(ch);
cnt++;
if(cnt%5 ==0) {
System.out.println();
}
}
//(6) 2023년 윤년 판단(윤년일까요?)
// 2023년 : 평년(2월 28일)
// 2024년 : 윤년(2월 29일)
int year = 2024 ;
if((year %4 ==0) && (year % 100 !=0)||( year % 400 ==0)) {
System.out.println("윤년입니다.");
}
else {
System.out.println("평년입니다.");
}
윤년입니다.
//연산의 우선 순위를 잘 정해야한다.
//(7) 서기 1년 ~ 2023년까지(이하) 사이의 윤년의(번, 개) 출력
int leapYear = 0;
for(int i=1; i <= 2023; i++) {
if((i %4 ==0) && (i % 100 !=0)||( i % 400 ==0)) {
leapYear++;
}
}
System.out.println("서기 1년 ~ 2023년까지(이하) 사이의 윤년은 " + leapYear + "번 입니다." );
'ITスクール(2023.07.04~) > Java(2023.07.04~)' 카테고리의 다른 글
ITスクール 6日目 制御文 (0) | 2023.07.12 |
---|---|
ITスクール 5日目 UTF-8/var/あまりの複合代入演算子/短絡評価/ビット演算子/制御文 (0) | 2023.07.11 |
ITスクール 3日目 SWAP/SCANNER/変数 (0) | 2023.07.06 |
ITスクール 2日目 JDK・JRE・JVM/出力文/ 変数 (0) | 2023.07.05 |
ITスクール 1日目 Javaの特徴、インストール、Eclipse (0) | 2023.07.04 |