codingstudy
292
2021-01-22 01:26:45
4
192

입문자 자바 질문 2단밑줄 사이에있는 구문 뭘하는건지 이해가 가지않습니다 ㅠㅠ


 


import java.util.ArrayList;

import java.util.Scanner;


public class exampleli {


public static void main(String[] args) {

// TODO Auto-generated method stub

  Scanner sc = new Scanner(System.in);

      int arr[];

      int num;

      

      System.out.print("정수 몇개? >> ");

      num = sc.nextInt();

      

      arr = new int[num];

      for(int i=0; i<arr.length; i++) {

         int tmp = (int)(Math.random()*100+1);

         ====================================================

                  int chk = 0;                                                   

         for(int j=0; j<arr.length; j++) {

        if(tmp == arr[j]) {

        chk=1;

        break;

        }

         }

         if(chk == 1) {

        i--;

        continue;

         }

         arr[i] = tmp;

      } 

             ========================================

      

      for(int i=0; i<arr.length; i++) {

         if(i%10 == 0 && i != 0) System.out.println();

         System.out.print(arr[i] + " ");

      }

      sc.close();

   }

}


0
  • 답변 4

  • codingstudy
    292
    2021-01-22 01:30:09

    tmp == arr[j] 가 같으면 chk =1이되고 브레이크걸린다는게 뭐하는건지 잘모르겠습니다.

    설명좀 해주시면 감사하겠습니다

  • jason not json
    192
    2021-01-22 01:42:44
    break는 그밖을 싸고 있는 for에서 벗어나라는 구문입니다.

    tmp == arr[j] 가 같으면 chk =1 하고
    j가 최종값에 도달하지 않아도 그대로 j 의 for문에서 벗어나 i 의 for문으로 돌아갑니다 

  • codingstudy
    292
    2021-01-22 01:49:15

    저부분의  의도가 뭔지 궁금합니다  중복값 체크인가요?

  • jason not json
    192
    2021-01-22 02:13:38 작성 2021-01-22 02:36:28 수정됨

    대충보면 입력받은 값들과 

    중복되지 않는 값들을 난수로 찾는 것 같는데 

    입력받은 값과 난수값이 다르면 난수 값을 비교한 값에 덮어쓰기를 합니다

    난수가 입력받은 값에 존재 하면 다시 난수를 발생시켜서 같은 자리의 배열값을 다시 비교해야 합니다.

    그러니 처리를 중단하고 다시 시작하기 위해 밑에 —1; continue; 을 넣은 겁니다

    만약 현재 

    i가 1단계이며

    입력값과 같은 난수를 만나면

    배열의 다음값 비교를 중단하기 위한 처리 

    즉 chk에 1을 넣고  ++i된 것을 다시 —i로 되돌리고 arr[i] = tmp;를 실행 안하고 다시 1단계를 다시 돌게 됩니다.


    break는 완전히 현재 for 루프의 종료이고

    continue 는 지금 단계에서  빠져나와 다음단계로 

    즉 현재 1이었다면 continue 밑의 구문은 무시하고 2의 단계로 진행합니다. 


  • 로그인을 하시면 답변을 등록할 수 있습니다.