问题遇到的现象和发生背景
大二学生做的简单程序,遇到的难题,解答
问题相关代码
package just;
import java.util.Scanner;
class G{
static int re=-1;
public void G(){
int n=(int)(Math.random()*10000);
int n1=n/1000,n2=n/100%10,n3=n/10%10,n4=n%10;
while(n1==n2||n1==n3||n1==n4||n2==n3||n2==n4||n3==n4){
n=(int)(Math.random()*10000);
}
System.out.println("Start The Game");
int se=1,gn;
while(se!=0){
Scanner build=new Scanner(System.in);
System.out.println("请输入你猜测的四位数");
gn=build.nextInt();
while(gn<1000||gn>9999){
System.out.println("输入错误,请重新输入1个4位数:");
gn=build.nextInt();
}
int g1=gn/1000,g2=gn/100%10,g3=gn/10%10,g4=gn%10;
int b=0,a=0;
while(g1==g2||g1==g3||g1==g4||g2==g3||g2==g4||g3==g4){
System.out.println("有重复数字,请重新输入:");
gn=build.nextInt();
g1=(gn/1000);g2=(gn/100%10);g3=(gn/10%10);g4=(gn%10);
}
if(g1==n1){
a++;
}else if(g1==n2||g1==g3||g1==g4){
b++;
}
if(g2==n2){
a++;
}else if(g2==n1||g2==n3||g2==n4){
b++;
}
if(g3==n3){
a++;
}else if(g3==n1||g3==n2||g3==n4){
b++;
}
if(g4==n4){
a++;
}else if(g4==n2||g4==n3||g4==n4){
b++;
}
if(a==4){
System.out.println("锣鼓喧天,鞭炮齐鸣 您猜对啦!!!");
System.out.println("是否继续游戏(退出请输入0)");
re=build.nextInt();
if(re==0&&re!=-1){
break;
}else{
new G();
G.re=-1;
}
}
else
{
System.out.println(a+"A"+b+"B");
System.out.println("是否继续游戏(退出请输入0)");
se=build.nextInt();
}
}
}
}
public class guess {
public static void main(String[] args) {
G g=new G();
g.G();
}
}
运行结果的瑕疵
我想要达到的结果
解决上面截图中,在输入时同样的四个数只是位置不同,但是却出现结果的偏差的问题