복습(for구문, while문,do-while, 중첩반복문)

제이·2023년 3월 13일
post-thumbnail

중복

1.값의 중복 - 해결하기 위해서 변수설정을 한다.

2.연산의 중복
①연속적이고 규칙 있는 반복- 반복문으로 반복을 소거한다.
②연속적인 게 아니고 규칙이 없는 것

for구문

  • for구문의 형태
  • 예시
for(int i=0 ; i<4 : i++){
	System.our.println("A");
}
//값
i=0	A
i=1	A
i=2	A
i=3	A
i=4	
int sum = 0;
//
for(int i =1 ; i<=10 ; i++){
	sum + = i;			//sum=sum+i;
}
System.out.println(1부터 10까지의 정수의 합 =+ sum);

  • for구문 팁

초기값, 조건, 증감식에서 3개 다 적지 않아도 오류가 아니다.
그러나 조건이 생략되면 무조건 true라고 판단한다.
세미콜론은 다 적어야 된다.

반복문을 만들 때 신경 써야 하는 방법
: 반복을 끝낼 수 있는 수단을 만들어 놔야 한다.

class ForEx1{
	public static void main(String[] args){
		for( ; ; ){
			System.out.println("hi");
		}
}

이렇게 치면 무한반복된다.
조건은 생략하지 말아야 한다. 초기값과 증감식은 필요 없으면 생략해도 된다.

class ForEx1{
	public static void main(String[] args){
		for(;;)
			System.out.println("hi");
	}
}

실행해야 되는게 한문장 일 때, 중괄호 없애도 오류 나지 않는다.

while문

  • 형태

    while(불리언형태의 조건){
    A;
    }
    false면 { } 나가는 거. true면 A로.
    조건식이 true이면 계속 반복한다.

만약 while(true) {} 이렇게 되어 있으면 특별한 일이 없으면 계속해서 반복문을 시행하겠다는 의미.
'무한반복'하겠다는 의미이다.

for구문과 while문의 차이

  • for문 : 반복횟수를 내가 알고 있을 때 쓴다.
    내가 몇 번 반복하고 싶다고 할 때나 횟수를 나타낼 수 있을 때 사용한다.

  • while문 : 반복횟수를 예측할 수 없을 때 쓴다.
    내가 원하는 조건이 맞냐 아니냐를 판단하고 내가 원하는 조건을 달성할 수 있을때까지 계속 한다.
    그래서 와일은 조건만 있다. 그리고 A안에는 조건이 거짓이 나오는 게 있어야 한다. 그렇지 않으면 탈출할 수 없으니까.

  • while은 for문처럼 조건을 생략할 수 없다.

do-while문

  • 형태

    do {
    A;
    } while(조건);

  • 설명
    조건이 밑에 있다. 앞의 for, while은 수행보장이 안된다.
    처음부터 거짓일 수 있다.
    do while은 조건에 상관없이 무조건 A를 수행하고 난 후
    조건을 검사하고 true면 다시 올라가고 false면 밖으로 나간다.

while문과 do-while문 차이

  • while : 조건- 수행- 조건 -수행

  • do while : 수행 - 조건 -수행- 조건
    (조건이 참이든 거짓이든 상관없이 무조건 한번은 수행한다.)

중첩반복문

  • 중첩반복문이란? 반복문 안의 반복문
for (int i = 0 ; i<3 ; i++){
	for (int j = 0 ; j<5 ; j+2){
		System.out.println("A");
	}
}

  • 간단설명
    밖에 있는 for문이 1번 실행될 때마다
    안에 있는 for문이 모든 반복을 실행한다.
    그리고 안에 있는 for문이 끝나면,
    다시 밖에 있는 for문이 한번 실행되고 안의 반복문이 다시 반복된다.

  • 위의 코드에서 'int i = 0'은 단 한번만 실행된다!

for-each문(foreach)

  • 형태

    for(변수 : 배열값, 컨테이너값){
    반복수행할작업
    }

    for(int n : arr) {
    	System.out.println("a");
    }
  • arr에 들어있는 모든 원소를 꺼내서 int n에 저장한다고 보면 된다. 하나씩 꺼내는 것을 의미한다. 인덱스에 의존하는 방식이 아니다.
    새우깡을 하나씩 정렬해서 순서대로 먹는 것이 아니라 봉지에서 손에 집히는 대로 먹는 것을 의미한다고 볼 수 있다.
    인덱스를 기반하지 않아서 접근방향을 우리가 바꿀 수 없고, 대입연산이 되지 않는다.

피피티 - 10/5, 10/6

profile
Hello :)

0개의 댓글