Выдаёт ошибку при компилиции, пока не дошел до switch

165
20 июня 2018, 04:20

Выдаёт ошибку при компилиции, пока не дошел до switch всё идёт нормально, а потом ошибка. Где моя ошибка?

public class Massivalg {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int count = 0;
    Random rand = new Random();
    System.out.println("Введите кол-во ячеек массива");
    count = s.nextInt();
    int[] ar = new int[count];
    if (count <= 5) {
      for (int i = 0; i < count; i++) {
        System.out.println("Введите число массива " + i);
        ar[i] = s.nextInt();
      }
      for (int i = 0; i < ar.length; i++) {
        System.out.println("  " + i);
      }
    } else {
      for (int i = 0; i < 5; i++) {
        System.out.println("Введите число массива " + i);
        ar[i] = s.nextInt();
      }
      for (int i = 0; i < ar.length; i++) {
      }
      for (int i = 6; i < count; i++) {
        System.out.println("Следуюшие числа заполняться автоматом ");
        ar[i] = rand.nextInt();
        System.out.println("  " + i);
      }
    }
    System.out.println("Массив заполнен :) \n");
    System.out.println("Хотите проверить ячейку массива? \n ");
    System.out.println("Если да то введите '+' если нет то '-' \n");
    char ch ;
    ch = (char) s.nextByte();
    switch (ch) {
      case '+': {
        System.out.println("Введи номер от 0 \n");
        int k= s.nextInt();
        System.out.println(ar[k]);
        break;
      }
      case '-':
      {
        System.out.println("Sory");
      }
      default: System.out.println("Sory");
    }
  }
}
Answer 1
ch = (char) s.nextByte();

поменять на вариант

ch = s.next().charAt(0);

а лучше пользоваться строками

String string = s.nextLine();
Answer 2

Я немного "почистил" твой код, украсил его и убрал выпадающую ошибку.

Вот что у меня получилось:

import java.util.Random;
import java.util.Scanner;
public class Massivalg {
    public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int count = 0;
    Random rand = new Random();
    System.out.println("Введите кол-во ячеек в массиве");
    count = s.nextInt();
    int[] ar = new int[count];
    if (count < 6) {
        for (int i = 0; i < count; i++) {
                System.out.println("Введите число для ячейки " + i);
                ar[i] = s.nextInt();
        }
            for (int i = 0; i < ar.length; i++) {
                System.out.println(i + " - " + ar[i]);
            }
    } else {
        for (int i = 0; i < 5; i++) {
                System.out.println("Введите число для ячейки " + i);
                ar[i] = s.nextInt();
        }
            System.out.println("Следуюшие числа автоматоматически заполнят свободные ячейки массива ");
            for (int i = 6; i < count; i++) {
            ar[i] = rand.nextInt();
            System.out.println(i + "  - " + ar[i]);
            }
    }
    System.out.println("Массив заполнен :) \n");
    System.out.println("Хотите посмотреть значение в одной из ячеек массива?");
    System.out.println("Если да то введите '+' если нет то '-'");
    char ch ;
    ch = (char) s.next().charAt(0);;
    switch (ch) {
      case '+': {
        System.out.println("Введи номер от 0 до " + count);
        int k = s.nextInt();
        System.out.println("Число в ячейке " + k + " - " + ar[k]);
        break;
      }
      case '-':
      {
        System.out.println("Тогда в другой раз");
        break;
      }
      default: System.out.println("Извините, но такой ячейки не существует"); 
               break;
    }
  }
}
READ ALSO
ConcurrentModificationException и Хешмап

ConcurrentModificationException и Хешмап

Здравствуйте кидает Exception ConcurrentModificationException на этой строчке for (Transaction t : cgetTransactions())(64 строчка) на 2 итерации

225
Импорт библиотеки JAXB в проект JavaFX

Импорт библиотеки JAXB в проект JavaFX

Есть проект на JavaFX, для хранения данных нужно использовать сериализацию в JAXBДля этого нужно использовать XML

171
Cбои андроид приложения java.lang.RuntimeException

Cбои андроид приложения java.lang.RuntimeException

Несколько сбоев было но не могу понять изза чегоВзгляните:

152
Преобразование из int/char в String (java)

Преобразование из int/char в String (java)

String a = 'A' + "2"; Содержимое строки а: А2

180