왕초보 학생
251
2021-09-28 13:39:33
4
131

자바 간단한 오류 봐주시면 감사하겠습니다 ㅠㅠ


죄송한데 왜 이게 오류가 생기는지 가르쳐주시면 감사하겠습니다

args가 String 타입 배열이라서 scanner.next() 써준건데 에러가 생깁니다

읽어주셔서 감사합니다


0
  • 답변 4

  • Dierslair
    5k
    2021-09-28 13:42:41

    main 함수의 args는 커맨드 라인으로부터 받은 옵션입니다.

    java -jar kkk -opt1=1 -opt2=2, ...


    public static void main(String[] args) {
        System.out.println(Arrays.toString(args)); // [-opt1=1, -opt2=2]
    }

    scanner로 받은 값을 args 에 넣으면 언젠가는 IndexOutOfBounds 예외가 발생하겠죠?

  • a785312468
    326
    2021-09-28 13:44:53 작성 2021-09-28 13:49:02 수정됨

    안녕하세요.

    해당 오류는 args 배열의 길이가 0이라 그렇습니다.

    참고로 args는 command-line쪽에서 입력받는 친구입니다.

    만약에 command-line에서 실행하지 않고 args를 쓰실려고하신다면

      args = new String [3];  <---

      args[0]="Hello";

      args[1]="Java";

      args[2]="World";

      System.out.println(args[0]+" "+args[1]+" "+args[2]);


    이런식으로 args를 초기화 시켜주셔야합니다.

  • 소환사쇽쇽
    2k
    2021-09-28 13:48:48

    System.out.println(args.length) 해보시면 0 나올거에요.

    args라는 배열의 지금 길이가 0이어서 아무것도 들어갈 수 없는데 첫번째 자리(0)에 넣으려고 하니 범위를 벗어났다고 나오는거에요.

  • 왕초보 학생
    251
    2021-09-28 13:54:06

    선생님들 너무 사랑합니다 ㅠㅠ

    정말 감사합니다

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