2016-11-02 10 views
-2

사용자가 0을 입력하면 프로그램이 중지됩니다. 나는 이것을하는 방법을 이해할 수 없다. 예를 들어 1과 100 사이의 정수를 입력 2 5 6 5 4 3 23 43 2 0 2는 2 회 3 시간 4 1 시간 5 2 회 6 1 시간 (23)가 발생하는 발생 발생 발생 (1) 발생 발생 1 시간 (43)는 내 코드가 0내 코드에 센티널 값을 어떻게 추가합니까?

public class CountOccurrences { 
public static void main(String[] args) { 
Scanner input = new Scanner(System.in); 

System.out.println("Enter ten integers between 1 and 100: "); 
String userInput = input.nextLine(); 

//this splits the user input into an array using a space 
String[] inputString = userInput.split(" "); 
String[] previousValues = new String[inputString.length]; 

int count = 1; 

//Compare elements and update count for new string 
    for (int i = 0; i < inputString.length; i++) { 
    for (int j = i+ 1; j < inputString.length; j++) { 
    if (inputString[i].equals(inputString[j]) && notFound (previousValues, inputString[i]) {         `    
     count++; 
    } 
} 

    //Prints only unique strings 
    if(!userInput.equals("0")){ 
    if (notFound(previousValues,inputString[i])) { 
     if (count>1) { 
     System.out.println(inputString[i] + " occurs " + count + " times"); 
     } else { 
     System.out.println(inputString[i] + " occurs " + count + " time"); 
     } 
      count = 1; 
     } 
     if (notFound(previousValues,inputString[i])) { 
     previousValues[i] = inputString[i]; 
     } 
}} 


} 

//This method returns a boolean value. It is true if the string is not in the array and vice versa 

public static boolean notFound(String[] pastValues, String currentString) { 
boolean valueNotFound = true; 
int index = 0; 
while(index < pastValues.length && valueNotFound) { 
    if ((pastValues!= null) &&(currentString.equals(pastValues[index]))) { 
    valueNotFound = false; 
    } 
    index++; 
    } 
    return valueNotFound; 
    } 

//Method for printing an array 
    public static void printArray(String [] a) { 
    for (int i = 0; i < a.length; i++) { 
     System.out.print(a[i]+ " "); 

    } 

    } 

} 
+0

이'경우는 (! UserInput 사용자의 .equals가 ("0"))'트릭을 할해야 실행되어야하는 모든 코드가 주어진 경우 here API를 볼 수 있습니다 네가 한 말. –

+0

힌트 : 우리가 당신을 돕기 위해 우리 시간을 보내길 원합니다. 따라서 소스 코드를 올바르게 포맷/들여 쓰기하는 데 몇 분 정도 시간을 할애하십시오. 여기에 그런 엉망진창을 버리는 대신에 - if (! userInput.equals (0)) {'there - 0 주위에 따옴표가 없으므로 코드가 컴파일되지 않습니다! – GhostCat

답변

0

당신이 할 수있는 인쇄

1 시간을 발생한다는 else 조건을 추가하고 System.exit(0)를 사용하여 프로그램을 종료하려고하는 사용자에게로.

static void exit (int status) 현재 실행중인 프로그램이나 Java 가상 머신을 종료합니다.

상태 0은 프로그램 실행이 예외없이 완료되었음을 나타냅니다.

당신은 당신이 그 안에 다음 둥지를 입력을받을 후

+0

나는 그것을 시험해 보았다. 그것은 작동하지 않았다 – OnTheFence