사용자가 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]+ " ");
}
}
}
이'경우는 (! UserInput 사용자의 .equals가 ("0"))'트릭을 할해야 실행되어야하는 모든 코드가 주어진 경우 here API를 볼 수 있습니다 네가 한 말. –
힌트 : 우리가 당신을 돕기 위해 우리 시간을 보내길 원합니다. 따라서 소스 코드를 올바르게 포맷/들여 쓰기하는 데 몇 분 정도 시간을 할애하십시오. 여기에 그런 엉망진창을 버리는 대신에 - if (! userInput.equals (0)) {'there - 0 주위에 따옴표가 없으므로 코드가 컴파일되지 않습니다! – GhostCat