Java循环问题!

/*有一个数列 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 里的程序 


qq_Alliswell_5
浏览 2443回答 4
4回答

冰山点水

如果一定要用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

你的逻辑是正确的,错在boolean flag=true;这个初始化吧,因为你初始化为true,所以就算你没猜对,if(flag){System.out.println("恭喜您猜对了!");}这段代码也会执行

慕粉3304601

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

微笑Vlife

在else语句块中加入一条输入语句
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java