为了账号安全,请及时绑定邮箱和手机立即绑定

Java循环问题!

Java循环问题!

qq_Alliswell_5 2016-05-27 15:16:16
/*有一个数列 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);


查看完整回答
2 反对 回复 2016-05-27
  • 冰山点水
    冰山点水
    考虑不周全,我的代码倒数第三行flag=false;多余了,可删除!
  • qq_Alliswell_5
    qq_Alliswell_5
    声明boolean 是 想在ture 下循环 声明ture 想在 false 下循环 就声明false 这样理解对嘛?大神
  • 冰山点水
    冰山点水
    声明boolean变量并初始化为true或者false都可以,关键是取决于你的do while循环条件是什么。
点击展开后面2
?
sixGod

TA贡献34条经验 获得超22个赞

你的逻辑是正确的,错在boolean flag=true;这个初始化吧,因为你初始化为true,所以就算你没猜对,

if(flag){

System.out.println("恭喜您猜对了!");

}

这段代码也会执行

查看完整回答
2 反对 回复 2016-05-27
?
慕粉3304601

TA贡献1条经验 获得超0个赞

在if的两个分支里写进break就好咯,条件写成true


查看完整回答
反对 回复 2016-05-27
?
微笑Vlife

TA贡献3条经验 获得超0个赞

在else语句块中加入一条输入语句

查看完整回答
反对 回复 2016-05-27
  • 4 回答
  • 2 关注
  • 2441 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信