老师怎么设置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结束本次循环,继续下次循环。

同学所贴代码不完整,我这里没办法运行同学的代码呢~
建议下次同学贴出代码时,使用如下方式:

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
慕神9477737
提问者
2019-06-02
对了 老师可以顺便帮我看看这个代码有什么可以改进的地方吗
相似问题