나는 자바가 처음이다. 프로젝트에 대해 몇 가지 시도를하고 있지만 이것이 작동하지 않는 이유는 없습니다. 여기에 목표는 공백으로 구분 된 숫자를 입력하고 문자로 끝내는 것입니다. 그런 다음 프로그램은 짝수 및 홀수 색인 번호를 계산하여 합이 더 큰 값을 출력해야합니다.입력이 공백으로 구분되고 문자로 끝나면 숫자의 양을 어떻게 계산합니까?
주어진 숫자가 상수 일 때 이미 성공적으로 만들었지 만 지금은 사용자 입력에 맞게 만들고 싶습니다. 숫자를 배열에 넣고 싶기 때문에이 배열의 길이를 알아야합니다. 이것을 얻으려면 사용자가 넣는 숫자를 계산하여 적절한 길이의 배열을 만들 수 있습니다.
어떤 이유로 while 루프가 종료되지 않고 계속 실행됩니다. 입력 한 금액을 어떻게 계산합니까?
편집
나는) (in.next 추가했습니다; 첫 번째 while 루프에서는 첫 번째 입력 요소에서 멈추지 않습니다. 그러나 이것은 두 개의 while 루프가 동일한 입력을 통해 반복하려고하는 문제를 일으 킵니다. 두 번째 스캐너를 만들고 첫 번째 스캐너를 재설정하려고 시도했지만 첫 번째 요소에서 두 번째 루프가 시작되지 않습니다. 이전 답변은 이것이 가능하지 않다는 것을 보여줍니다. 배열을 사용하여 값을 저장하는 동안 루프에 넣는 방법이 있습니까?
P. 입력 값은 양 또는 음의 정수 여야합니다. 여기
내 전체 코드입니다 :import java.util.Scanner;
public class LargerArraySum {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int length = 0;
System.out.println("Enter your numbers seperated by spaces, end with a letter");
while(in.hasNextInt()) {
length++;
in.next();
}
System.out.println(length);
int arra[] = new int[length];
while(in.hasNextInt()) {
for(int i=0;i<length;i++) {
int x = in.nextInt();
arra[i] = x;
}
}
int evenSum = EvenArraySum(arra);
int oddSum = OddArraySum(arra);
if(evenSum<oddSum) {
System.out.println("The sum of the odd indexed elements is bigger");
} else if(oddSum<evenSum) {
System.out.println("The sum of the even indexed elements is bigger");
} else {
System.out.println("The sum of the odd and even indexed elements is equal");
}
}
public static int EvenArraySum(int[] a) {
int sum = 0;
for(int i=1;i<a.length;i+=2) {
sum += a[i];
}
System.out.println("The sum of the even indexed elements is: " + sum);
return sum;
}
public static int OddArraySum(int[] a) {
int sum = 0;
for(int i=0;i<a.length;i+=2) {
sum += a[i];
}
System.out.println("The sum of the odd indexed elements is: " + sum);
return sum;
}
}
어떤 while 루프가 계속 실행됩니까? 2가 있습니다. – Eabryt
while 루프는 끝나지 않습니다. 다음 int를 사용하지 않기 때문에 항상 동일한 수를 확인합니다. 나는 당신의 케이스 대신 ArrayList를 사용하여 길이가 고정 된 배열을 사용할 것을 제안한다. – IQV
길이를 올리는 곳 – Fiosaurus