반복문 예제

sisun·2023년 4월 6일
0

백엔드 연습

목록 보기
4/6

반복문 글

https://velog.io/@si9138/%EB%B0%98%EB%B3%B5%EB%AC%B8

for 반복문

public static void main(String[] args) {
	//1~10까지의 합 구하기
		double sum = 0;
		long i = 0; //전역변수와 지역변수의 차이 이해하기
		System.out.println("계산시작.....");
		
		for( i=1; i<=10; i++) {
			sum +=i;
			
			
		}System.out.println("==============");
System.out.println("sum : "+sum+", i: "+i);
//i를 for문 안에서 지역변수로만 선언하면 해당 블럭 안에서만 사용 가능하고 
//main메소드 안에서전역 변수로 선언하면 모든 블럭에서 사용 가능하다
System.out.println("총합 : "+sum);
	}
}

while문 1

public static void main(String[] args) {
	//1~10까지의 합 구하기
		int i = 1;
		int sum =0;
		
		while(i<=10) {
			sum +=i; //sum= sum+i;
			System.out.println("sum :"+sum);
			i++; //i=i+1;
			System.out.println("i :"+i);
		}
			System.out.println("sum = "+sum);
	}

}

do...while 반복문


while 반복문과는 다르게 do while문은 앞에 문장이 있고 while문 옆에 조건문이 있다.

public static void main(String[] args) {
		int a = 1;
		do {
			System.out.println("Hello java!");
			a++;
		}while(a<=5); //조건식 뒤에 ;이 빠지면 안됨
	}
}

break

public static void main(String[] args) {
		int i = 1;
		int sum = 0;
		
		while(true) { //무한루프를 돌리겠다는 의미
			sum +=i;
			if(i>=10)break; //조건식에 true가 들어가 있을 때에는 반드시 탈출 명령어가 있어야 한다.
			i++;
		}
		System.out.println("sum : "+sum);
	}
}

continue 구문

  • 반드시 루프 안에서만 사용
  • 루프 안에서 다음 반복 단계로 진행하라는 의미

public static void main(String[] args) {
		//1~10까지의 홀수의 합을 구하기
		int sum = 0;
		
		for(int i = 1; i<=10; i++) {
			if(i%2 == 0) continue; //이 조건이 맞으면 그 다음줄은 건너 뛰겠다.
			sum +=i;
			System.out.println("sum : "+sum+", i : "+i);
		}
		System.out.println("sum : "+sum);
	}
}

중첩된 반복문

public static void main(String[] args) {
		//구구단
		for(int a=2; a<=9; a++) {
			for(int b=1; b<=9; b++) {
				System.out.printf("%d*%d=%d " ,a,b,a*b);
			}
			System.out.println(); //줄넘김
		}
		
		System.out.println("==============");
		//세로 구구단
		for(int b=1; b<=9; b++) {
			for(int a=2; a<=9; a++) {
				System.out.printf("%d*%d=%2d " ,a,b,a*b);
				 
				}
			System.out.println(); //줄넘김
		}
		

	}

}

문제

public static void main(String[] args) {
	 Scanner sc = new Scanner(System.in);
	 //선언
	 int num = 0;
	 int count = 0;
	 
	 //입력
	 System.out.println("숫자 입력 : ");
	 num = sc.nextInt();
	 
	 //연산
	 for(int i=1; i<=100; i++) {
		 if(i%num==0) {
			 System.out.println(i+" ");
			 count++; //count+=1;
		 }	 
	 }
	 //출력
	 System.out.println("\n1~100사이의 "+num+"의 배수의 개수는 "+count+"개이다.");
 }
}


for문 예제

public static void main(String[] args) {
		// 선언
		int sum = 0;

		// 연산,출력
		for (int i = 1; i <= 100; i++) {
			sum += i;
			if (i % 10 == 0) {// 조건
				//System.out.println("sum: " + sum + ", i: " + i);
				//System.out.println(i-9+"~"+i+"="+sum);
				System.out.printf("%2d ~ %3d = %3d\n",i-9,i,sum);
				sum = 0; // sum 초기화

			}
		}
	}
}


while문 예제

public static void main(String[] args) {
	 Scanner sc = new Scanner(System.in);
	
	 //사용자가 입력할 숫자를 담을 변수 선언
	 int key = 0;
	 
	 while(true) {
		 System.out.println("*****************");
		 System.out.println("1.입력\n2.검색\n3.삭제\n4.종료");
		 System.out.println("*****************");	
		 System.out.println("번호를 입력해주세요: ");	
		 key = sc.nextInt();
		 
		 if(key==4) break; //프로그램 종료
		 
		 switch(key) {
		 case 1:System.out.println("\n입력을 선택하였습니다.\n");break;
		 case 2:System.out.println("\n검색을 선택하였습니다.\n");break;
		 case 3:System.out.println("\n삭제을 선택하였습니다.\n");break;
	// case 4:System.out.println("\n프로그램을 종료합니다.\n");System.exit(0);
		 }//System.exit(0) 이건 종료한다는 뜻
	 }
	 System.out.println("프로그램을 종료합니다.");
 }
}


for반복문 사용

	public static void main(String[] args) {
		for(int i = 1; i <= 4; i++) { //층수
			for(int j = 0; j < i; j++) { //별의 개수
 				System.out.print("*");
			}
			System.out.println("");
	
		}
	}
}

import java.util.Scanner;

public class prac05 {
	public static void main(String[] args) {
		//원하는 구구단 입력받아 출력하기
		Scanner sc = new Scanner(System.in);
		
		int num = 0;
		char ch = 0;
		
		do {
			System.out.println("몇 단을 출력할지 입력하세요: ");
			num = sc.nextInt();
			
			for(int i = 1; i<=9; i++) {
				System.out.printf("%2d*%d = %2d\n",num,i,num*i);
			}
		System.out.println("계속할지 선택하세요 (y || Y : 계속)");
		ch= sc.next().charAt(0);
		
		if(!(ch == 'y' || ch == 'Y')) {
			System.out.println("종료합니다.");
			break;
		}
		
		}while(true);
		
	}
}

다시 한번 보기.


1.while문, for문, do while문
2.

package siseonmi2;

public class prac07 {
	public static void main(String[] args) {
	//확인문제 ex02
		int sum = 0;
		for(int i = 1; i<=100; i++) {
			if(i%3 == 0) sum+=i;
		}
		System.out.println("1~100까지의 정수 중에 3의 배수의 총합: " +sum);
		
	}
}
public static void main(String[] args) {
	//확인문제 ex03 , 0~1까지의 실수가 랜덤으로 생성되는 함수
		while(true) {
			int num1 = (int)(Math.random()*6+1);
			int num2 = (int)(Math.random()*6+1);
			System.out.println(num1 + ","+num2);
			if(num1+num2==5) break;
		}
	}
	
}
	public static void main(String[] args) {
	//확인문제 ex04
		for(int x=1; x<=10; x++) {
			for(int y=1; y<=10; y++) {
				if(4*x+5*y==60) {
					System.out.println(x+","+y);
					}
				}
			}
		}
	}
		

	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) { //층수
			for (int j = 1; j <= 5-i; j++) {// 트리 옆에 공백문자출력
					System.out.println(""); 
				}
			for (int j=1; j<=(2*i-i); j++) {//*별문자 출력
			System.out.println("*");
			}
			System.out.println(); //줄바꿈
		}
	}
}

	package siseonmi2;

import java.util.Scanner;

public class prac09 {
 public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    //선언
    int select = 0; //번호 저장
    int balance = 0; //잔고 저장(마이너스통장이라고 가정)
    int withdrawal = 0; //출금액 저장
    int deposit = 0; //입금액 저장
    
    //입력, 연산, 출력
    while(true) {
       //입력
       System.out.println("1.예금 2.출금 3.잔고 4.종료");
       System.out.print("번호 선택:");
       select = sc.nextInt();
       
       if(select == 4) {
          System.out.println("프로그램을 종료합니다.");
          break;
       }
       
       switch(select) {
       case 1:
          System.out.println("예금액 : ");
          deposit = sc.nextInt();
          balance +=deposit;
          break;
       case 2:
          System.out.println("출금액 : ");
          withdrawal = sc.nextInt();
          balance -= withdrawal;
          break;
       case 3:
          System.out.println("잔고액 : "+balance);
          break;
       }
    }

 }
}
profile
풀스택 국비수강중

0개의 댓글