Эта программа упрощена до того, что мы найдем в музыкальном магазине. Мы вводим желаемую нами команду, и это делает то, что предполагает эта команда. Это варианты.Throw exception in switch statement
Создать "клиент "|" музыка "|" продажа"
Список "клиент "|" музыка "|" продажа"
Erase "клиент «|» музыка «|» продажи "(с использованием или без использования кода, который генерируется, когда мы создаем новое заявление)
Программа должна выполняться до тех пор, пока типа„закрыть“.
Здесь я отправляю то, что я делал до сих пор.
Главный вопрос заключается в том, как выдать исключение, если мы вводим неверный код или вводим то, что здесь не существует. Теперь, когда это происходит, это только начинается в начале. Я бы apreciate тоже, если вы дадите мне советы на любые изменения или модификации, которые вы считаете, может быть лучше для этой программы, я только начинаю с этим, и я знаю, что это может быть сделано в лучшем виде:
public class Main {
static GestionarMusica musiclist= new GestionarMusica(20);
static GestionarCliente clientlist= new GestionarCliente(20);
static Scanner input= new Scanner(System.in);
static String instructions;
public static void main (String[] args){
do{
try{
System.out.println("Waiting for instructions: ");
instructions= input.nextLine();
switch (instructions){
case "create client":
createClient();
break;
case "create music":
createMusic();
break;
case "create selling":
//createSelling();
break;
case "list client":
listClient();
break;
case "list music":
listMusic();
break;
case "list selling":
//listSelling();
break;
}
}catch (NullPointerException npe){
System.out.println("There are not articles on the list");
}
if (instructions.equals("erase client")){
eraseClientWithoutCode();
}
if (instructions.length() <= 18 && instructions.length() >= 17 && instructions.substring(0, 16).equals("erase client")){
String client_code = instructions.substring(16);
client_code = client_code.trim();
int code = Integer.parseInt(client_code);
eraseClientWithCode(code);
}
if (instruction.equals("erase music")){
eraseMusicWithoutCode();
}
if (instructions.length() <= 17 && instructions.length() >= 16 && instructions.substring(0, 15).equals("erase music")){
String music_code = instructions.substring(15);
music_code = music_code.trim();
int code = Integer.parseInt(music_code);
eraseMusicWithCode(code);
}
if (instructions.equals("erase selling")){
eraseSellingWithoutCode();
}
if (instructions.length() <= 16 && instructions.length() >= 15 && instructions.substring(0, 14).equals("erase selling")){
String selling_code = instructions.substring(14);
selling_code = selling_code.trim();
int code = Integer.parseInt(selling_code);
eraseSellingWithCode(code);
}
}while(!instructions.equals("close"));
}
public static void createMusic() {
System.out.println("Insert album title: ");
String title = teclado.nextLine();
System.out.println("Insert album autor: ");
String autor = teclado.nextLine();
System.out.println("Insert format: ");
String format = input.nextLine();
musiclist.add(new Music(title, autor, format, musiclist.generateCode()));
}
public static void listMusic() {
System.out.println(musiclist.toString());
}
public static void eraseMusicWithCode(int code) {
musiclist.delete(code);
System.out.println("Article deleted");
}
public static void eraseMusicWithoutCode() {
System.out.println("Insert article code: ");
int code = input.nextInt();
musiclist.delete(code);
System.out.println("Article deleted");
}
UPDATE-- Об использовании по умолчанию в заявлении коммутатора
Я не могу использовать значение по умолчанию, потому что по этой причине. Внутри переключателя у меня есть , создайте и список команд, но мне пришлось установить команды erase вне ведьмы, потому что это зависит от того, вводю ли я команду с кодом или без нее. Итак, если я введу команду стирания, и если у меня есть значение по умолчанию внутри коммутатора, оно покажет исключение.
в коммутаторе, используйте значение по умолчанию: \\ исключение. – wxyz
Чтобы выбросить исключение в оператор switch, вы генерируете исключение. Единственный небольшой сюрприз в том, что если случай только генерирует исключение - логика 'if' - тогда' break' будет мертв, если вы его используете, и компилятор будет жаловаться. Поэтому пропустите 'break'. –
Опубликована информация об использовании команды по умолчанию – masmic