java猜数字,如果猜对了,继续猜,一共猜5次,求代码。

这是小弟自己写的java猜数字小游戏,可是最後怎麼样都不会再猜错5次后结束,想请大神知道一下到底错在哪里~

这段程序有这么几个问题:
语法报错,编译不能通过,不能通过的原因是:
for (n=0; n <= 5; n++) 被您写成了for (; n <= 5; n++)

随机数的产生:您是想产生一个1~100之间的整数,用Math.random()是可以的,但是
应该,ran = (int) (Math.round(Math.random() * 99)) + 1; 乘以100的话,最大数越界了,具体请参考Math.round的详解,如果看不懂这个解释,可以编写一个测试方法测试
思路的问题,外层do..while循环里面,就是控制循环是否执行,里面就不要再嵌套for循环了,难道每次执行do..while循环的时候,你都想再判断5次?正确的思路:
设置是否猜对的布尔值 flag=false; //默认没猜对
do{

//1.获取键盘输入
//2. 比较数据,如果猜对了flag=true
//3. 次数计数器+1
}while(循环执行的条件:次数计数器<=5 &&数字没匹配对 即flag=false )
当跳出循环时候有两种情况,第一种情况次数>5,第二种,匹配对了(flag=true),可以在循环的时候设置一个布尔变量(flag),初始值为false,如果匹配对了,这个布尔变量(true),跳出循环的时候就根据这个布尔变量的值来判断是否曾经在循环体内匹配对了

package cc.icoc.javaxu;

import java.io.IOException;
import java.util.Random;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class GuessActivity extends Activity {
/** Called when the activity is first created. */
Button btnOK,btnClean,btnGet;
EditText input;
TextView outputInfo;
MediaPlayer media;

String getStr;
int getNum = 10;
int answer;
int count = 0;
final String TAG = "XU";

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guess);
new Thread(new MyRunnable()).start();
System.out.println("运行");
//使用随机数来给answer变量赋值
Random random = new Random();
answer = random.nextInt(100);

input = (EditText)this.findViewById(R.id.input);
outputInfo = (TextView)this.findViewById(R.id.info);

btnOK = (Button)this.findViewById(R.id.btnClick);
btnGet = (Button)this.findViewById(R.id.btnGet);
btnClean = (Button)this.findViewById(R.id.btnClean);
btnOK.setOnClickListener(new ButtonEvent());
btnGet.setOnClickListener(new ButtonEvent());
btnClean.setOnClickListener(new ButtonEvent());

System.out.println("运行1");

}

public void getNumber() {
Random random = new Random();
answer = random.nextInt(100);
}

class ButtonEvent implements OnClickListener
{
public void onClick(View v) {
getStr = input.getText().toString();
System.out.println("getStr==="+getStr);
System.out.println("文本框当前值"+input.getText());
System.out.println("文本框当前值"+input.getText().toString().length()+"值:"+Integer.parseInt(getStr));

// 点击猜一下按钮的事件
if(v.getId() == R.id.btnClick)
{
System.out.println("文本框当前值"+input.getText().toString().trim().length());
getNum = Integer.parseInt(getStr);
if(input.getText().toString() == null)
{
Toast.makeText(GuessActivity.this, "你还没有输入数字", Toast.LENGTH_SHORT).show();
}
else
{
if(answer == getNum)
{
outputInfo.setText("");
outputInfo.setText(R.string.right);
Toast.makeText(GuessActivity.this, "你总共猜了 "+count+" 次", Toast.LENGTH_SHORT).show();
getNumber();
}

else if(answer > getNum)
{
outputInfo.setText("");
outputInfo.setText(R.string.tooSmall);
}

else if(answer < getNum)
{
outputInfo.setText("");
outputInfo.setText(R.string.tooBig);
}
}
count++;
}


if(v.getId() == R.id.btnGet)
{
outputInfo.setText("");
outputInfo.setText("答案是: "+answer);
getNumber();
}

//清除按钮的事件
if(v.getId() == R.id.btnClean)
{
input.setText("");
System.out.println("Count= "+count);
}

if(count == 6)
{
outputInfo.setText("");
outputInfo.setText(R.string.bendan);
}

if(count == 10)
{
outputInfo.setText("");
outputInfo.setText(R.string.bendan2);
}
}


}

class MyRunnable implements Runnable
{
public void run() {
System.out.println("MyRunnable"+Thread.currentThread().getId()+Thread.currentThread().getName());
// TODO Auto-generated method stub
System.out.println("运行2");

sound();
}

private void sound() {
// TODO Auto-generated method stub
media = new MediaPlayer();
if (media != null)
{
media.stop();
}
media.reset();
media = MediaPlayer.create(GuessActivity.this,R.raw.guess);

try {
media.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
media.start();
}

}
}

import java.util.Random;
import java.util.Scanner;
public class caishu {
static int i = 0;
static int p;
public static void main(String[] args) {
// TODO Auto-generated method stub
p = (int) (Math.random() * 100);
//System.out.println(p);
while (i < 5) {
try {
System.out.println("请输入你要猜的数:");
Scanner scanner = new Scanner(System.in);
int s = scanner.nextInt();
if (p != s) {
if (p > s) {
System.out.println("你猜得数小了");
} else {
System.out.println("你猜得数大了");
}
} else {
System.out.println("恭喜你猜对了!");
return;
}
i++;
} catch (Exception ex) {
System.out.println("输入的数据有误!");
}
}
System.out.println("你的猜数次数已经用完了!");
}
}


运行结果

 




public static void main(String args[]) {

Scanner sc=new Scanner(System.in);

int n=(int) (Math.random()*3);

int k=5,s;

while(k>0){

System.out.println("please input a number");

s=sc.nextInt();

System.out.println(n);

if(s!=n){

System.out.println("wrong answer");

break;

}

System.out.println("You're right");

n=(int) (Math.random()*3);

}



这么简单的程序,初学者应该都会吧。。。。。。。。。随机生成数字,控制台输入scanner..然后比对结果。。。。然后循环5次。

java三线程猜数问题
答:;ThreadTwo three = new ThreadTwo("猜题线程2");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}three.start();while(true){//如果有猜对的就停止所有线程if(two.getGuessResult().equals("猜对了")||three.getGuessResult().equals("猜对了")){one....

猜数。系统随机生成一个1到10的整数,从键盘输入你猜的数,如果该值...
答:,b;//随机生成一个1-10数!while(true) {System.out.println("请输入一个1-10范围数进行猜测!");b=sc.nextInt();if(b==a||b==a-1||b==a+1) {System.out.println("恭喜猜中了!标准数字是:"+a);sc.close();break;}System.out.println("不对,请继续猜:\r\n");}}} ...

JAVA猜数字游戏1.要求随机产生一个数,猜中即为赢,猜不中将提示大了还是...
答:package test;import java.util.Random;import java.util.Scanner;public class GuessNum {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Integer randomNum = new Random().nextInt(100), count = 0;long start = System.currentTimeMillis();boolean bingo = ...

java猜数字游戏?
答:{ System.out.println("太大了,再小一点!");compareNum();} if (n == answer){ System.out.println("恭喜你,猜对了!");} } public static int receiveNum() { System.out.println("请输入您猜的数字:");int n = new Scanner(System.in).nextInt();return n;} } 运行结果 ...

Java猜数字游戏,事先随机给出3个100以内的正确答案,然后再输入100以内...
答:"请输入数字:");Scanner s = new Scanner(System.in);int input = s.nextInt();boolean res = false;System.out.println("我猜的数字"+input);for (int i = 0; i < num.length; i++) {int j = num[i];if(j==input)res = true;}if(res)System.out.println("猜对了");...

JAVA猜数字
答:有一个java.util.Scanner类可以使用 import java.util.Scanner;//我不想打很多,以下用到Scanner的都是java.util.Scanner public class InputTest{ public static void main(String[] args){ Scanner input=new Scanner(System.in);//输入主要是System.in System.out.print("请输入一个0...

编写猜数游戏的Java程序。 猜数游戏的规则如下: 1)系统产生一个[0,1...
答:请输入一个数:");while(true){ int data = in.nextInt();//得到用户输入的数字 if(data>number){ System.out.println("大了,请继续输入:");}else if(data<number){ System.out.println("小了,请继续输入:");}else{ System.out.println("恭喜你猜对了!!");break;} } } } ...

java计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜...
答:// 用户猜的数字 int count = 0;// 猜测次数 System.out.println("我心里有一个0到99之间的整数,你猜是什么?"); long starttime=System.currentTimeMillis(); // 用户猜测随机数 do { guess = input.nextInt(); if (number < guess) { System.out.println(...

...系统随机产生一个1~100的数字,然后让玩家猜测这个数字,如果...
答:2.用一个变量去接收玩家输入的数,例如int i;3.用if语句,当玩家输入的数与随机数相等时(i==num),则输出语句(恭喜你猜对了).4.用else写出猜错是的语句.大致思路就是这样.建议你自己去写,只有自己写过才会懂.如有不懂的M我,本人也在学习中,大家可以相互讨论讨论.另外你可以把数字设置成1~10;...

Java猜数字程序代码
答:/*1、编写一个猜数字的游戏,由电脑随机产生一个100以内的整数,让用户去猜,如果用户猜的比电脑大,则输出“大了,再小点!”,反之则输出“小了,再大点!”,用户总共只能猜十次,并根据用户正确猜出答案所用的次数输出相应的信息,如:只用一次就猜对,输出“你是个天才!”,八次才猜对,...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网