利用条件判断语句模拟产生式规则进行推理,中途可以中断推理,也可使推理进行到底。使用GO输入可使推理进行到底,使用END输入可提前终止推理。
package com
.tylg
.animals1
;
import java
.util
.Scanner
;
public class Testing {
public static void main(String
[] args
) {
System
.out
.println("请输入 S、K、L以表示该动物是属于水、空、陆中的其中一种");
Scanner sc
= new Scanner(System
.in
);
String s
= judge1(sc
.nextLine());
inferenceMachine(sc
, s
);
}
private static void inferenceMachine(Scanner sc
, String s
) {
if(s
.equals("S")) {
System
.out
.println("请您摁下 GO 或者 END");
String s12
= judge2(sc
.nextLine());
if (s12
.equals("END")) {
System
.out
.println("您要找的是:水生动物");
} else {
System
.out
.println("您所要查询的水生动物是否用肺呼吸(Y or N)");
String s13
= judge0(sc
.nextLine());
if (s13
.equals("Y")) {
System
.out
.println("请您摁下 GO 或者 END");
String s13_
= judge2(sc
.nextLine());
if (s13_
.equals("END")) {
System
.out
.println("您要找的是:鲸鱼");
} else {
System
.out
.println("您所要查询的用肺呼吸的水生动物是否有牙齿(Y or N)");
String s14
= judge0(sc
.nextLine());
if (s14
.equals("Y")) {
System
.out
.println("您要找的动物是:虎鲸");
} else {
System
.out
.println("您要找的动物是:须鲸");
}
}
} else if (s13
.equals("N")) {
System
.out
.println("您要找的是用腮呼吸的是:普通鱼🐟");
}
}
}else if(s
.equals("K")) {
System
.out
.println("请您摁下 GO or END");
String s21
= judge2(sc
.nextLine());
if (s21
.equals("GO")) {
System
.out
.println("请问该空中动物是节肢动物吗?(Y or N)");
String s21_
= judge0(sc
.nextLine());
if (s21_
.equals("Y")) {
System
.out
.println("请您摁下 GO or END");
String s22
= judge2(sc
.nextLine());
if (s22
.equals("GO")) {
System
.out
.println("请问该空中飞行的节肢动物是害虫还是益虫:害虫为N,益虫为Y?");
String s22_
= judge0(sc
.nextLine());
if (s22_
.equals("Y")) {
System
.out
.println("您所查询的为:蜜蜂");
} else {
System
.out
.println("您所查询的为:蝗虫");
}
} else {
System
.out
.println("您输入的是:空中飞行的节肢动物");
}
} else {
System
.out
.println("请您摁下 GO or END");
String s23
= judge2(sc
.nextLine());
if (s23
.equals("GO")) {
System
.out
.println("请问该空中飞行的非节肢动物能否模仿人类说话(Y or N)");
String s23_
= judge0(sc
.nextLine());
if (s23_
.equals("Y")) {
System
.out
.println("您所查询的是:鹦鹉");
} else {
System
.out
.println("您所查询的是:麻雀");
}
} else {
System
.out
.println("您输入的是:空中飞行的非节肢动物");
}
}
} else {
System
.out
.println("您输入的是:空中动物");
}
}else if(s
.equals("L")) {
System
.out
.println("请您摁下 GO or END");
String s21
= judge2(sc
.nextLine());
if (s21
.equals("GO")) {
System
.out
.println("请问该陆地动物是食肉动物还是食草动物 食肉用Y,食草用N?");
String s21_
= judge0(sc
.nextLine());
if (s21_
.equals("Y")) {
System
.out
.println("请您摁下 GO or END");
String s22
= judge2(sc
.nextLine());
if (s22
.equals("GO")) {
System
.out
.println("请问该动物是否为猫科动物?(Y or N)");
String s22_
= judge0(sc
.nextLine());
if (s22_
.equals("Y")) {
System
.out
.println("您所查询的为:老虎");
} else {
System
.out
.println("您所查询的为:狼");
}
} else {
System
.out
.println("您输入的是:陆地上的食肉动物");
}
} else {
System
.out
.println("请您摁下 GO or END");
String s23
= judge2(sc
.nextLine());
if (s23
.equals("GO")) {
System
.out
.println("请问该动物是否有角(Y or N)");
String s23_
= judge0(sc
.nextLine());
if (s23_
.equals("Y")) {
System
.out
.println("您所查询的是:山羊");
} else {
System
.out
.println("您所查询的是:熊猫");
}
} else {
System
.out
.println("您输入的是:食草动物");
}
}
} else {
System
.out
.println("您输入的是:陆地动物");
}
}else {
System
.out
.println("程序运行出错了,请重新运行!!!");
}
}
public static String
judge0(String s
) {
Scanner sc
= new Scanner(System
.in
);
while (!(s
.equals("Y") || s
.equals("N"))) {
System
.out
.println("您输入的字母有误,请重新输入:Y, N");
String ss
= sc
.nextLine();
s
= ss
;
}
return s
;
}
public static String
judge1(String s
) {
Scanner sc
= new Scanner(System
.in
);
while (!(s
.equals("L") || s
.equals("K") || s
.equals("S"))) {
System
.out
.println("您输入的字母有误,请重新输入:L, K, S");
String ss
= sc
.nextLine();
s
= ss
;
}
return s
;
}
public static String
judge2(String s
) {
Scanner sc
= new Scanner(System
.in
);
while (!(s
.equals("END") || s
.equals("GO"))) {
System
.out
.println("您输入的指令有误,请重新输入:END or GO");
String ss
= sc
.nextLine();
s
= ss
;
}
return s
;
}
}
转载请注明原文地址: https://mac.8miu.com/read-503487.html