刚开始学java,写了一个简单的循环显示乘法口诀表的小程序,不足之处还请各路大神不吝指正

agoodhappyboy 2016-04-21 09:08:28
如题,学java几天了,只能浅薄的弄两下方法,面向对象理解不了。今天绞尽脑汁拼了这么个小程序出来,里面肯定有多问题的啦!虽然运行结果达到要求,总感觉逻辑不是很好,有不足的地方,还请各路大神不吝赐教啦!下面贴上代码:
main程序:

class Demo1 {
public static void main(String[] args) {
ChengFaKouJue cf = new ChengFaKouJue();
cf.go();
}
}
------------------------------------------------------------------------华丽分隔线---------------------------------------------------------------------------------

ChengFaKouJue 类:

import java.util.Scanner;

public final class ChengFaKouJue {
private int num; // 乘法中的最大值
private Boolean flag = true;
private int kind;
private Boolean fla = true;
private int x = 1;
private Boolean flagg = true;


public ChengFaKouJue() {
} // 无参构造方法


public ChengFaKouJue(int num) { // 有参构造方法
this.num = num;
}


public void setNum(int num) { // 设置乘法口诀表中最大的数
if (num >= 0 && num < 10) {
this.num = num;
x = 1;
} else {
System.out.println("小手一抖,输错了!请重新输入:");
fla = false;
x = 0;
}
}


public int getNum() { // 获得乘法口诀表中
return num;
}


public void setKind(int kind) {
if (kind < 3 && kind > 0) {
this.kind = kind;
x = 1;
} else {
System.out.println("您的输入有误,请重新输入:");
flagg = false;
x = 0;
}
}
public int getKind() {
return kind;
}
public int inPut() {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
return num;
}

public void print_1(int num) { // 打印输出乘法口诀表
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "X" + i + "=" + i * j + "\t");
}
System.out.println();
}
}


public void print_2(int num) {
for (int i = 1; i <= num; i++) {
for (int j = num; j >= i; j--) {
System.out.print(j + "X" + i + "=" + i * j + "\t");
}
System.out.println();
}
}


public void print(int num, char ch) {


}


public void go() {
while (flag) {
while (fla) {
System.out.println("想来个几乘几的?");
setNum(inPut());
if (x == 0) {
x = 1;
fla = true;
flagg = true;
continue;
} else {
while (flagg) {
System.out.println("选择一个乘法口诀表显示方式:1,2");
setKind(inPut());
if (x == 0) {
flagg = true;
x = 1;
continue;
} else {
flagg = false;
fla = false;
}
}
}
}


switch (kind) {
case 1:
print_1(num);
fla = true;
flagg = true;
break;
case 2:
print_2(num);
fla = true;
flagg = true;
break;
default:
break;
}
System.out.println("还要曳继续吗?继续:Enter确认,退出:回复“N/n”");
Scanner sc=new Scanner(System.in);
String str = sc.next();
if(str =="n"||str=="N"){
flag=false;
}else{
flag = true;
}


}
}


}
...全文
157 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧