У меня есть программа ниже Java.Тип несоответствия при попытке выхода на ketpress
package Arrays;
import java.util.Scanner;
public class Arrays {
public static void main(String[] args) {
final int size = 5; // Size of the input Array
Scanner input = new Scanner(System.in);
while (!input.equals("q")) {
System.out.println("Enter the 5 number you want to be stored in an array");
// get the input of array from the user
int a[] = new int[size];
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
}
/* Methods */
System.out.println("\n");
displayArray(a); // to display the numbers entered in Array
System.out.println("\n");
sumOfArray(a);// To print the sum of Array
System.out.println("\n");
productOfArray(a);// to print the product of Array
System.out.println("\n");
smallAndLargeOfArray(a);// to print the Max and Min number in Array
System.out.println("\n");
averageOfArray(a);// to print the average of Array
System.out.println("\n");
}
input.close();
}
private static void displayArray(int arr[]) {
System.out.print("The numbers you have inserted are ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
if (i < arr.length - 1) {
System.out.print(", ");
}
}
}
private static void sumOfArray(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.print("Sum of array is " + sum);
}
private static void productOfArray(int[] arr) {
int prod = 1;
for (int i = 0; i < arr.length; i++) {
prod *= arr[i];
}
System.out.print("Product of array is " + prod);
}
private static void smallAndLargeOfArray(int arr[]) {
int minimim = Integer.MAX_VALUE;
int maximum = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
if (minimim > arr[i]) {
minimim = arr[i];
}
if (maximum < arr[i]) {
maximum = arr[i];
}
}
System.out.print("Minimum and Maximum numbers in array are " + minimim
+ " and " + maximum);
}
private static void averageOfArray(int arr[]) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
double avg = sum/5;
System.out.print("Average of array is " + avg);
}
}
здесь я пытался продолжить программу, пока пользователь вводит q
, но здесь, когда я вхожу q
он бросает ошибку ниже.
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Arrays.Arrays.main(Arrays.java:16)
, пожалуйста, дайте мне знать, где я иду, и как я могу исправить это.
Благодаря
, но здесь я предполагаю ввести только 5 номеров, но он дает мне возможность ввести 6-й (первый игнорируется). – user3872094
Вы правы. Я отредактировал свой ответ. Метод 'findInLine' смотрит только на вход и не потребляет его. Прошедшее регулярное выражение представляет букву _q_ как первую и последнюю букву или строку. Ознакомьтесь с [Документация] (https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html) класса Scanner. – Dennis