/*有一个数列 8,4,2,1,23,344 ,12循环输出数列的值求数列所有数值之和猜数游戏:从键盘中任意输入一个数据判断是否是数组中的数字*/import java.util.*;public class ShuZu { public static void main(String[] args){ //键盘录入口 Scanner input=new Scanner(System.in); //判断猜数正确 声明布尔值 boolean flag=true; //声明和sum int sum=0; //定义并赋值数组 //int num[]=new int[]{} int num[]={8,4,2,1,23,344,12}; //利用for循环输出数组 //for(int nums:num) for(int i=0;i<num.length;i++){ System.out.println(num[i]); //求出数列所有之和 sum+=num[i]; } System.out.println("所有数列之和是"+sum); //猜数游戏 do{ System.out.println("请输入您要猜的数字:"); int guess=input.nextInt(); //对象导入 no 中 for(int no:num){ if(guess==no){ flag=true; break; } } if(flag){ System.out.println("恭喜您猜对了!"); }else{ System.out.println("很遗憾您没有猜中"); } }while(!flag); } }横杠处的循环跌进条件真心想不出来 求大神帮忙指点!!! 用do while 想实现 猜数不正确时重复 do while 里的程序
4 回答
已采纳
冰山点水
TA贡献109条经验 获得超149个赞
如果一定要用do while,可以参考修改后的代码:
//声明并初始化flag的值为false boolean flag=false; //猜数游戏 do{ System.out.println("请输入您要猜的数字:"); int guess=input.nextInt(); //对象导入 no 中 for(int no:num){ if(guess==no){ System.out.println("恭喜您猜对了!"); flag=true; break; } } if(flag==true){ break; }else{ System.out.println("很遗憾您没有猜中"); } }while(flag==false);
sixGod
TA贡献34条经验 获得超22个赞
你的逻辑是正确的,错在boolean flag=true;这个初始化吧,因为你初始化为true,所以就算你没猜对,
if(flag){
System.out.println("恭喜您猜对了!");
}
这段代码也会执行
添加回答
举报
0/150
提交
取消