黑马程序员技术交流社区

标题: 符号错误 [打印本页]

作者: MAY1066    时间: 2015-6-29 21:20
标题: 符号错误
/*
问题:在第一个输出语句加g.count就会出现错误
提示找不到符号,谢谢大神们解答了:)
               



*/
import java.util.Scanner;
class GameDemo
{
        public static void main(String[]args)
    {       
                Game g=new Game();
                //int a=count;
                //System.out.println(a);

                System.out.println("请输入"+g.count+"所猜的数据");
                g.guess();
               
        }


}
class Game
{       
        public void guess()
        {        Scanner sc=new Scanner(System.in);
               

            int number=(int)(Math.random()*100)+1;
            int count=0;
       
                while(count<8)
                {        int num=sc.nextInt();
                        if (num>number)
                        {        count++;
                                System.out.println("您第 "+count+"次"+"输入的是:"+num+"比所猜的大了");
                        } else if(num<number)
                        {        count++;
                                System.out.println("您第 "+count+"次"+"输入的是:"+num+"比所猜的小了");
                               
                        }else
                               
                 
                        {        count++;
                                System.out.println("您第 "+count+"次"+"输入的是:"+num+"猜中了");
                                break;
                        }
               
       
                }
        }
}



作者: 燃烧的灵魂    时间: 2015-6-29 21:53
首先你是猜数字游戏的话就有点繁琐,直接判断是否输入的数字和随机的数字是否相等,如果相等,则结束,如果不等,那么继续循环,在这里count作为计数的话,你并不知道这个计数是多少(也就是你输入多少次它会出现这个数),提前让它小于8,有可能在8次以内找不到呢?再说,在主函数里面你是先没有调用guss函数,它不会认识count是什么东西的(因为没有方法执行),你应该在guss中让count成返回值,然后直接在主函数里面调用guss函数打印count就行了…………试试看!
作者: 如初见    时间: 2015-6-29 21:54
哦天,,  你这代码书写太不规范了,,看了好半天。
  你在主函数中调用了g.count。但是你在game类中,int count 定了成了局部变量,在guess方法下,是局部变量。也就是说,game类根本就没有成员变量 int count。所以找不到符号,而且看你的逻辑,你吧while逻辑判断的条件设成了count<8,是想大于8次就不让猜吗?
作者: 如初见    时间: 2015-6-29 21:57
  1. public class Game {
  2.         public static void main(String[] args) {
  3.                 Scanner scanner = new Scanner(System.in);
  4.                 int game_num = (int) (Math.random() * 100)+1;
  5.                 // System.out.println(game_num);//查看是是否是1-100 随机数
  6.                 System.out.println("请输入一个1-100的数字");
  7.                 int count = 1;
  8.                 boolean GAME_OVER = false;
  9.                 while (!GAME_OVER) {
  10.                         int num = scanner.nextInt();
  11.                         if (num < game_num) {
  12.                                 System.out.println("您输入的数小了");
  13.                                 count++;
  14.                         } else if (num > game_num) {
  15.                                 System.out.println("您输入的数大了");
  16.                                 count++;
  17.                         } else {
  18.                                 System.out.println("恭喜您猜中了!");
  19.                                 System.out.println("您一共用了" + count + "次");
  20.                                 return;
  21.                         }
  22.                 }
  23.                 scanner.close();
  24.         }
复制代码

作者: zlpiano    时间: 2015-6-29 21:58
你的类Game里面没有count这个成员变量,你定义在函数里面了
作者: 如初见    时间: 2015-6-29 21:58
java 标准书写代码。和你要写的例子
作者: 15311068548    时间: 2015-6-29 22:11
好复杂,
作者: MAY1066    时间: 2015-6-29 22:22
燃烧的灵魂 发表于 2015-6-29 21:53
首先你是猜数字游戏的话就有点繁琐,直接判断是否输入的数字和随机的数字是否相等,如果相等,则结束,如果 ...

谢谢,我试一下
作者: 含笑    时间: 2015-6-29 22:23
while (true) {
                        int num = scanner.nextInt();
                        if (num < game_num) {
                                System.out.println("您输入的数小了");
                                count++;
                        } else if (num > game_num) {
                                System.out.println("您输入的数大了");
                                count++;
                        } else {
                                System.out.println("恭喜您猜中了!");
                                System.out.println("您一共用了" + count + "次");
                            break;
                        }

这样改行不
作者: Especially丶    时间: 2015-6-29 22:24
感觉好复杂,,:dizzy:
作者: MAY1066    时间: 2015-6-29 22:31
含笑 发表于 2015-6-29 22:23
while (true) {
                        int num = scanner.nextInt();
                        if (num ...

恩,谢谢,这样好像也不错啊
作者: 崔司龙    时间: 2015-6-29 22:32
学习下.....................
作者: MAY1066    时间: 2015-6-29 22:32
zlpiano 发表于 2015-6-29 21:58
你的类Game里面没有count这个成员变量,你定义在函数里面了

谢谢终于找到这个错误了
作者: MAY1066    时间: 2015-6-29 22:37
如初见 发表于 2015-6-29 21:57

谢谢你的帮助,不错,再次感谢
作者: MAY1066    时间: 2015-6-29 22:38
燃烧的灵魂 发表于 2015-6-29 21:53
首先你是猜数字游戏的话就有点繁琐,直接判断是否输入的数字和随机的数字是否相等,如果相等,则结束,如果 ...

谢谢,你的帮助很好,我试了一下能够运行
作者: wenxueaaa555    时间: 2015-6-29 22:50
你的count在类中是局部变量,不是全局变量




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2