标题: 输入中文开始结束九九乘法表,两种延伸 [打印本页] 作者: wangmiaosen 时间: 2015-12-19 21:40 标题: 输入中文开始结束九九乘法表,两种延伸 课堂上老师只是简单的写了一个代码,输入几,乘法表就打到 几,不够完善,没有容错机制,输入1到9之外的数字,就提示你请您输入1到9之间的数字。代码如下:
import java.util.Scanner;
class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入一个数字");
int a = sc.nextInt();
if (a == 1101) {
System.out.println("谢谢使用,欢迎下次光临");//如果输入1101,本循环结束,程序结束
break ;
}else if (a <1 || a >9){
System.out.println("请您输入1到9之间的数字,谢谢");//如果输入1到9之外的数,跳出本次循环,继续下次
continue;
}
print99(a);
}
}
public static void print99(int a ) {
for (int x = 1;x <=a ;x++ ){
for (int y =1;y <=x ;y++ ){
System.out.print(y + "*" + x + "=" + y*x +"\t");
}
System.out.println();
}
}
}
本代码中容错机制中,continue 很是关键,并不是跳出循环,而是结束本次循环,继续下次循环。
2)上一个程序中,要想结束得输入指定的数字,感觉不够直观,能不能输入中文来开始和结束呢?这样就更人性化,于是有了下面的程序,Java中有一个功能就是把字符串形式的数字,变成整型的数字,所以,可以输入字符串,来控制开始或者结束,如果输入数字的话,进行转化,然后再运算。代码如下:
import java.util.Scanner;
class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入--开始 ---游戏开始");
String str = sc.nextLine();
if (str.equals("开始")) {
while (true) {
System.out.println("输入游戏结束,则游戏结束; 输入1-9的数据则游戏运行");
String str1 = sc.nextLine();
if (str1.equals("游戏结束")) {
System.out.println("谢谢使用,欢迎下次光临");//如果输入1101,本循环结束,程序结束
break;
}
if (Integer.parseInt(str1) < 1 || Integer.parseInt(str1) > 9) {
System.out.println("请您输入1到9之间的数字,谢谢");// 如果输入1到9之外的数,跳出本次循环,继续下次
continue;
}
print99(Integer.parseInt(str1));
}
}
}
public static void print99(int a) {
for (int x = 1; x <= a; x++) {
for (int y = 1; y <= x; y++) {
System.out.print(y + "*" + x + "=" + y * x + "\t");
}
System.out.println();
}
}
}
这个程序的关键在于.equals 的使用,它用于判断字符串是否相同,另外一个是Integer.parseInt(str1)的使用,是把字符串形式的数字转换成整数类型,其他的跟上一个大同小异,我还有一个问题没有解决,那就是输入开始和结束的容错机制,输入其他的提示你输入开始或者结束。
交流QQ564626316