需求:程序运行后,客户可多次使用,查询对应星期的运动计划,输出其他数字显示输入错误,直到输入0退出程序
分析:
1、客户输入,需要Scanner类
2、定义变量,用switch语句实现每天的运动
import java.util.Scanner;
public class text0507 {
public static void main(String[] args) {
System.out.println("今天星期几?");
Scanner sc=new Scanner(System.in);
int day= sc.nextInt();
switch (day){
case 1:
System.out.println("今天跑步");
break;
case 2:
System.out.println("今天跳绳");
break;
case 3:
System.out.println("今天游泳");
break;
case 4:
System.out.println("今天跳高");
break;
case 5:
System.out.println("今天跳远");
break;
case 6:
System.out.println("今天爬山");
break;
case 7:
System.out.println("今天休息");
break;
default:
System.out.println("输入有误");
break;
}
}
}
3、在switch语句外加入死循环
import java.util.Scanner;
public class text0507 {
public static void main(String[] args) {
while (true) {
System.out.println("今天星期几?");
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 1:
System.out.println("今天跑步");
break;
case 2:
System.out.println("今天跳绳");
break;
case 3:
System.out.println("今天游泳");
break;
case 4:
System.out.println("今天跳高");
break;
case 5:
System.out.println("今天跳远");
break;
case 6:
System.out.println("今天爬山");
break;
case 7:
System.out.println("今天休息");
break;
default:
System.out.println("输入有误");
break;
}
}
}
}
4、加入输入为0的情况
import java.util.Scanner;
public class text0507 {
public static void main(String[] args) {
while (true) {
System.out.println("今天星期几?");
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 0:
System.out.println("已退出程序,感谢使用!");
break;
case 1:
System.out.println("今天跑步");
break;
case 2:
System.out.println("今天跳绳");
break;
case 3:
System.out.println("今天游泳");
break;
case 4:
System.out.println("今天跳高");
break;
case 5:
System.out.println("今天跳远");
break;
case 6:
System.out.println("今天爬山");
break;
case 7:
System.out.println("今天休息");
break;
default:
System.out.println("输入有误");
break;
}
}
}
}
理论上已经结束了,但是看控制台:
输出0时,没有结束程序。
原因:break只跳出了switch循环,而没有跳出外层的while死循环。
改进:用标号的方法,给死循环起个名字,case为0时,break后加标号的名字即可。
import java.util.Scanner;
public class text0507 {
public static void main(String[] args) {
loop:
while (true) {
System.out.println("今天星期几?");
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 0:
System.out.println("已退出程序,感谢使用!");
break loop;
case 1:
System.out.println("今天跑步");
break;
case 2:
System.out.println("今天跳绳");
break;
case 3:
System.out.println("今天游泳");
break;
case 4:
System.out.println("今天跳高");
break;
case 5:
System.out.println("今天跳远");
break;
case 6:
System.out.println("今天爬山");
break;
case 7:
System.out.println("今天休息");
break;
default:
System.out.println("输入有误");
break;
}
}
}
}
成功实现