老师怎么设置TRY CATCH

来源:4-7 自由编程

慕神9477737

2019-06-01 21:22:20

package model;

import java.util.Scanner;

public class Final {

public static void main(String[] args) {

// TODO Auto-generated method stub

Playset mainset=new Playset("主播放列表");

Showcase one=new Showcase();

Playmap two=new Playmap();

two.getMap().put("主播放列表", mainset);

boolean a=true;

while(a) {

one.showone();

Scanner sc=new Scanner(System.in);

int i=sc.nextInt();

switch(i) {

 case 1:

boolean x=true;

while(x) {

one.showtwo();

int i1=sc.nextInt();

switch(i1) {

case 1:

System.out.println("请输入要添加的歌曲数量:");

int count=sc.nextInt();

for(int i2=0;i2<count;i2++) 

{

System.out.println("请输入歌曲ID:");

String id=mainset.addsID();

System.out.println("请输入歌曲名称");

String name=mainset.addsname();

Song song=new Song(id,name);

mainset.getPlayset().add(song);

}

mainset.displayallsong();

break;

case 2:

System.out.println("请输入要在哪个播放列表当中进行添加");

Playset pl2=two.serchbyname();  

System.out.println("请输入要添加的歌曲数量");

int count1=sc.nextInt();

for(int i2=0;i2<count1;i2++) {

System.out.println("请输入歌曲ID:");

String q=pl2.addsID(); 

System.out.println("请输入歌曲名称:");

String b= pl2.addsname();

Song song=new Song(q,b);

pl2.getPlayset().add(song);

mainset.getPlayset().add(song);

pl2.displayallsong();

}

break;

 


 

case 3:

System.out.println("请输入要查找的列表名称");

Playset pl=two.serchbyname();

Song song=pl.serchbyid();

System.out.println(song);

break;

//while的括号

case 4:

System.out.println("请输入要查找的列表名称");

Playset pl1=two.serchbyname();

Song song1=pl1.serchbyname();

System.out.println(song1);

break;

case 5:

boolean flag2=true;

while(flag2) {

System.out.println("请输入在哪个播放列表中进行修改");

String name1=sc.next();

for(String s:two.getMap().keySet()) {

if(s.contentEquals(name1)) {

System.out.println("1.通过ID查询歌曲并修改歌曲");

System.out.println("2.通过歌名查询歌曲并修改歌曲");

System.out.println("请选择修改歌曲的方式:");

int n=sc.nextInt();

switch(n) {

case 1:

Song oldsong=two.getMap().get(name1).serchbyid();

    System.out.println("请输入新ID:");

    String id=sc.next();

    System.out.println("请输入新歌曲名称");

    String name2=sc.next();

    Song newsong=new Song(id,name2);

    two.getMap().get(name1).updatesongbyid(oldsong, newsong);

    mainset.getPlayset().remove(oldsong);

    mainset.getPlayset().add(newsong);

    System.out.println(newsong);

    flag2=false;

    break;

case 2:

Song oldsong1=two.getMap().get(name1).serchbyname();

System.out.println("请输入新ID:");

    String id1=sc.next();

    System.out.println("请输入新歌曲名称");

    String name3=sc.next();

    Song newsong1=new Song(id1,name3);

    two.getMap().get(name1).updatesongbyid(oldsong1, newsong1);

    mainset.getPlayset().remove(oldsong1);

    mainset.getPlayset().add(newsong1);

    System.out.println(newsong1);

    flag2=false;

    break;

}//switch的括号

}//if括号

}//for括号

 

 

}//while的括号

break;

case 6:

System.out.println("请输入要在哪个播放列表中删除");

Playset ply=two.serchbyname();

System.out.println("1.查找歌曲ID并删除歌曲");

System.out.println("2.查找歌曲名称并删除歌曲");

System.out.println("请选择:");

int n=sc.nextInt();

switch(n) {

case 1:

ply.deletesongbyid();

break;

case 2:

ply.deletesongbyname();

break;

}

break;

case 7:

mainset.displayallsong();

break;

case 8:

x=false;

break;

}

}//whilex

break;

 case 2:

boolean f=true;

while(f) {

one.showthree();

int i1=sc.nextInt();

switch(i1) {

case 1:

two.addsset();

break;

case 2:

two.deleteset();

break;

case 3:

System.out.println("请输入要查找的列表名称:");

Playset pl=two.serchbyname();

pl.displayallsong();

break;

case 4:

two.showallname();

break;

case 5:

f=false;

break;

 

}

 

 

}//F后面的括号   

}

}

}

}

package model;


import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;


public class Playset {

private String name;

private Set<Song> playset;


public Playset(String name) {

this.name = name;

this.playset = new HashSet<Song>();

}


public Set<Song> getPlayset() {

return playset;

}


public void setPlayset(Set<Song> playset) {

this.playset = playset;

}


public String getName() {

return name;

}


public void setName(String name) {

this.name = name;

}


public String addsID() {

String id = null;

boolean flag = true;

int i=1;

while(flag) {

Scanner sc = new Scanner(System.in);

id = sc.next();

for (Song song : this.playset) {

if (song.getID().equals(id)) {

System.out.println("该歌曲已经存在请重新输入歌曲ID");

flag = true;

i++;

break;

} // if

else {

i++;

flag = false;

}

} // for

if(i==1) {

break;

}

}//while

return id;

}


public String addsname() {

String name = null;

boolean flag = true;

int i=1;

while(flag) {

Scanner sc = new Scanner(System.in);

name = sc.next();

for (Song song : this.playset) {

if (song.getName().equals(name)) {

System.out.println("该歌曲已经存在请重新输入歌曲名称");

flag = true;

i++;

break;

} // if

else {

i++;

flag = false;

}

} // for

if(i==1) {

break;

}

}//while

return name;

}


public Song serchbyid() {

Song song = null;

while (true) {

System.out.println("请输入要查找歌曲的ID:");

Scanner sc = new Scanner(System.in);

String id = sc.next();


for (Song song1 : this.playset) {

if (song1.getID().equals(id)) {

song = song1;

return song;

}

}

}

}


public Song serchbyname() {

Song song = null;

while (true) {

System.out.println("请输入要查找歌曲的名称:");

Scanner sc = new Scanner(System.in);

String name1 = sc.next();


for (Song song1 : this.playset) {

if (song1.getName().equals(name1)) {

song = song1;

return song;

}

}

}

}

public void updatesongbyid(Song old, Song new1) {


this.playset.remove(old);

this.playset.add(new1);


}


public void updatesongbyname(Song oid,Song new1) {

this.playset.remove(oid);

this.playset.add(new1);

}


public void deletesongbyname() {

Song song = this.serchbyname();

this.playset.remove(song);

}


public void deletesongbyid() {

Song song = this.serchbyid();

this.playset.remove(song);

}


public void displayallsong() {

for (Song song : this.playset) {

System.out.println(song);

}

}

}

package model;


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

public class Playmap {

private Map<String, Playset> map;


public Playmap() {

super();

map = new HashMap<String, Playset>();

}


public Map<String, Playset> getMap() {

return map;

}


public void setMap(Map<String, Playset> map) {

this.map = map;

}


public void addsset() {

System.out.println("请输入要添加的播放列表名称");

Playset one = null;

while (one == null) {

Scanner sc = new Scanner(System.in);

String name = sc.next();

for (String key : map.keySet()) {

if (name.equals(key)) {

System.out.println("该列表已经存在请重新输入:");

break;

} else {

Playset one1 = new Playset("name");

one = one1;

this.map.put(name, one);

break;

}

}

}

}


public void deleteset() {

System.out.println("请输入要删除的列表名称:");

boolean flag = true;

while (flag) {

Scanner sc = new Scanner(System.in);

String name = sc.next();

for (String key : map.keySet()) {

if (!name.equals(key)) {

System.out.println("该列表不存在请重新输入:");

break;

} else if (name.equals("主播放列表")) {

System.out.println("不能删除主播放列表");

break;

} else {

this.map.remove(name);

flag = false;

break;

}

}

}

}


public Playset serchbyname() {

String name;

while(true) {

Scanner sc = new Scanner(System.in);

name = sc.next();

for (String key : map.keySet()) {

if (name.equals(key)) {

return map.get(name);

}


}

System.out.println("没找到请重新输入:");


}

}

public void showallname() {

for(String key:map.keySet()) {

System.out.println(key);

}

}

}

package model;


public class Showcase {

public void showone() {

System.out.println("**********");

System.out.println("1.播放列表管理");

System.out.println("2.播放器管理");

System.out.println("3.退出程序");

System.out.println("**********");

}


public void showtwo() {

System.out.println("**********");

System.out.println("1.将歌曲添加到主播放列表");

System.out.println("2.将歌曲添加到普通播放列表");

System.out.println("3.通过Id查询播放列表中的歌曲");

System.out.println("4.通过歌曲名称查询列表中的歌曲");

System.out.println("5.修改播放列表中的歌曲");

System.out.println("6.删除播放列表中的歌曲");

System.out.println("7.显示播放列表中的所有歌曲");

System.out.println("8.返回上一级菜单");

System.out.println("**********");

}


public void showthree() {

System.out.println("**********");

System.out.println("1.向播放器中添加播放列表");

System.out.println("2.向播放器中删除播放列表");

System.out.println("3.通过名字查询播放列表信息");

System.out.println("4.显示所有播放列表名称");

System.out.println("5.返回上一级菜单");

System.out.println("**********");

}


}

老师这是我的代码 我在输入数字选择的时候如果输入字母就会报错  我想达成的效果是 不能输入字母请重新输入:      这种的话要怎么设置TRY CATCH才能实现?   

写回答

2回答

吃吃吃鱼的猫

2019-06-02

同学你好,使用try-catch捕获异常可以将从键盘接收数据放在try块中,然后在catch块中输出提示语句,使用continue结束本次循环,继续下次循环。

http://img.mukewang.com/climg/5cf33c710001cc4803860117.jpg

同学所贴代码不完整,我这里没办法运行同学的代码呢~

建议下次同学贴出代码时,使用如下方式:

http://img.mukewang.com/climg/5cf33d03000131fa01250192.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

慕神9477737

提问者

2019-06-02

对了 老师可以顺便帮我看看这个代码有什么可以改进的地方吗

0

0 学习 · 11489 问题

查看课程