2012-10-23 2 views
0

특정 정수 (1에서 10까지)를 취하는 for 루프를 작성하는 방법을 이해하고 도움이 필요합니다. 0이 마지막 숫자가됩니다). 내 코드는 지금까지 있습니다 :사용자가 0을 입력 할 때까지 입력을 배열로 가져 가야합니다. Java

import java.util.Scanner; 
    public class countNum { 

     public static void main(String[] args) { 

     int[] array; 

     Scanner input = new Scanner(System.in); 
     System.out.println ("Enter in numbers (1-10) enter 0 when finished:"); 

     int x = input.nextInt(); 

     while (x != 0) { 
      if (x > 2 && x < 10) { 
      //Don't know what to put here to make array[] take in the values 
      } 
      else 
      //Can I just put break? How do I get it to go back to the top of the while loop? 
     } 
     } 

    } 

}

나는 스캐너를 가진 것은 그 길이를 알 수없는 숫자의 일정 금액을 읽는 동안 동시에 0까지 설정된 길이로 배열을 초기화하는 방법을 이해하지 않습니다 이 입력되면 루프가 배열에 대한 입력을 중단합니다.

도움 주셔서 감사합니다. 여기에 좋아

+2

위의 같은 문자 또는 유효하지 않은 입력을 입력하면 예외를 처리하기 위해 필요한이 넘어 당신의 의심 .. 를 해결하기를 희망으로

당신은 당신의 프로그램을 수정할 수 있습니다 당신은 할 수 있습니다 ArrayList를 사용하면 동적으로 크기를 설정할 필요가 없습니다 http://www.anyexample.com/programming/java/java_arraylist_example.xml –

+1

'설정된 길이의 배열 초기화하기 '-> 필요하지 않습니다. 에. 동적으로 크기를 증가시키는'ArrayList'를 사용하십시오. 그리고 나는 당신이 당신의 상태에서 당신의 숫자를 나타내는 두 개의 다른 변수를 사용했다는 것을 알고 있습니다. –

+0

좀 더 자세히 설명해 주시겠습니까? – Zach

답변

1

은 좀 더 세부 사항입니다 : -

  • 당신은 동적으로 증가하는 배열을 원하는 경우 ArrayList을 사용해야합니다. 이처럼 수행 -

    List<Integer> numbers = new ArrayList<Integer>(); 
    
  • 지금, 당신은 정기적으로 읽고 싶은 이후 위의 코드에서, 당신은, while 루프 내부에 number 읽기 문 (nextInt)을 넣을 수 있습니다. 그리고 입력 한 번호가 INT인지 여부를 확인하는 동안 루프에서 조건을 넣어 : -

    int num = 0; 
    while (scanner.hasNextInt()) { 
        num = scanner.nextInt(); 
    } 
    
  • 는 또한, 당신이 당신의 자신에 이동할 수 있습니다. 번호가 0인지 여부 만 확인하십시오. 그 0 경우,

    numbers.add(num); 
    
  • 당신의 while 루프의 탈옥 - : 그것은 0가 아닌 경우, ArrayList에 추가합니다.

  • while 루프에서 이미 x != 0 조건이 필요하지 않습니다. 이미 루프 내부에서 확인하고 있으므로.

1

사용자가 임의의 자릿수를 입력 할 수있는 것으로 보입니다. 이 시나리오의 경우 배열을 갖는 것은 배열의 크기보다 먼저 배열의 크기를 알아야하기 때문에 간단하지 않습니다. 그래도 몇 가지 옵션이 있습니다.

  1. ArrayList을 사용하십시오. 이것은 동적으로 확장되는 동적 데이터 구조입니다.
  2. 사용자에게 배열을 초기화하기 위해 입력 할 숫자의 양을 물어보고 사용하십시오.
  3. 크기에 대한 가정을 근거로 배열을 만듭니다.

두 경우 모두 2와 3에서 다음과 같은 경우 프로그램을 중지시키는 논리를 포함시켜야합니다. (1) 사용자가 0을 입력하거나 (2) 사용자가 제공 한 숫자가 초과 할 때 배열의 사이즈

구현하기가 쉽기 때문에 첫 번째 해결책을 고수하는 것이 좋습니다.

1

Java Collections를 사용하는 것이 좋습니다.

import java.util.ArrayList; 
import java.util.InputMismatchException; 
import java.util.List; 
import java.util.Scanner; 

    public class arrayQuestion { 

    public static void main(String[] args) { 

     List<Integer> userInputArray = new ArrayList<Integer>(); 

     Scanner input = new Scanner(System.in); 
     System.out.println("Enter 10 Numbers "); 
     int count = 0; 
     int x; 
     try { 
      do { 
       x = input.nextInt(); 
       if (x != 0) { 
        System.out.println("Given Number is " + x); 
        userInputArray.add(x); 
       } else { 
        System.out 
          .println("Program will stop Getting input from USER"); 
        break; 
       } 
       count++; 
      } while (x != 0 && count < 10); 

      System.out.println("Numbers from USER : " + userInputArray); 
     } catch (InputMismatchException iex) { 
      System.out.println("Sorry You have entered a invalid input"); 
     } catch (Exception e) { 
      System.out.println("Something went wrong :-("); 
     } 

     // Perform Anything you want to do from this Array List 

    } 
} 

내가이 u는 사용자가

관련 문제