A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 f78fk 于 2014-6-4 21:15 编辑

自己做了一个计算器,发现定义了一个函数out() ,  main函数和out()都已经public了,结果发现out()这个函数无法访问main函数中的变量jieguo
编译提示:
JiSuanQi.java:47: 错误: 找不到符号
                        System.out.println(jieguo);

  符号:   变量 jieguo
  位置: 类 JiSuanQi


  1. import java.util.*;
  2. class JiSuanQi
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 System.out.println("请输入您要参与运算的第1个数,回车键结束输入。");
  7.                 Scanner a = new Scanner(System.in);
  8.                 int a1 = a.nextInt();
  9.                
  10.                 System.out.println("请输入您要参与运算的第2个数,回车键结束输入。");
  11.                 Scanner b = new Scanner(System.in);
  12.                 int b1 = b.nextInt();
  13.                
  14.                 System.out.println("请输入您要运算的方式,填写相对应的数字:\n1:+\n2:-\n3:*\n4:/");
  15.                 Scanner c = new Scanner(System.in);
  16.                 int c1 = c.nextInt();
  17.                
  18.                 int jieguo;

  19.                 if (c1==1)
  20.                 {
  21.                         jieguo = a1+b1;
  22.                         out();
  23.                 }
  24.                 else if (c1==2)
  25.                 {
  26.                         jieguo = a1-b1;
  27.                         out();
  28.                 }
  29.                 else if (c1==3)
  30.                 {
  31.                         jieguo = a1*b1;
  32.                         out();
  33.                 }
  34.                 else if (c1==4)
  35.                 {
  36.                         jieguo = a1/b1;
  37.                         out();
  38.                 }
  39.                 else
  40.                         System.out.print("输入值错误");

  41.                 }

  42.         public static void out()
  43.                 {
  44.                         System.out.println(jieguo);
  45.                 }
  46. }
复制代码

第一个问题已经搞定了,感谢沙发lex和朋友们的指点现在又有一个问题,本来想让最后用户输入1就继续循环执行程序
否则退出程序,结果这个程序一直死循环下去了,这个又是为何?
最新源码:


  1. import java.util.*;
  2. class JiSuanQi
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 boolean bl = true;
  7.                 while (bl)
  8.                 {
  9.                
  10.                         System.out.println("请输入您要参与运算的第1个数,回车键结束输入。");
  11.                         Scanner a = new Scanner(System.in);
  12.                         int a1 = a.nextInt();
  13.                         
  14.                         System.out.println("请输入您要参与运算的第2个数,回车键结束输入。");
  15.                         Scanner b = new Scanner(System.in);
  16.                         int b1 = b.nextInt();
  17.                         
  18.                         System.out.println("请输入您要运算的方式,填写相对应的数字:\n1:+\n2:-\n3:*\n4:/");
  19.                         Scanner c = new Scanner(System.in);
  20.                         int c1 = c.nextInt();
  21.                         
  22.                         int jieguo;

  23.                         if (c1==1)
  24.                         {
  25.                                 jieguo = a1+b1;
  26.                                 out(jieguo);
  27.                         }
  28.                         else if (c1==2)
  29.                         {
  30.                                 jieguo = a1-b1;
  31.                                 out(jieguo);
  32.                         }
  33.                         else if (c1==3)
  34.                         {
  35.                                 jieguo = a1*b1;
  36.                                 out(jieguo);
  37.                         }
  38.                         else if (c1==4)
  39.                         {
  40.                                 jieguo = a1/b1;
  41.                                 out(jieguo);
  42.                         }
  43.                         else
  44.                                 System.out.print("输入值错误");

  45.                         }

  46.                         System.out.print("继续请输入1,结束程序请按输入任意键");

  47.                         Scanner d = new Scanner(System.in);
  48.                         int d1 = d.nextInt();

  49.                         if (d1!=1)
  50.                         {
  51.                                 bl=false;
  52.                         }
  53.                         

  54.                 }
  55.         public static void out(int jieguo)
  56.                 {
  57.                         System.out.println("结果为:"+jieguo);
  58.                 }
  59. }
复制代码






评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

8 个回复

正序浏览
Lex 中级黑马 2014-6-3 20:59:21
8#
f78fk 发表于 2014-6-3 20:37
那个已经搞定了,我现在想让这个程序最后输入1继续循环,否则退出,结果一直循环下去了。我明明标记了bl= ...
  1. <p>import java.util.*;
  2. class JiSuanQi
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 boolean bl = true;
  7.                 while (bl)
  8.                 {
  9.                
  10.                         System.out.println("请输入您要参与运算的第1个数,回车键结束输入。");
  11.                         Scanner a = new Scanner(System.in);
  12.                         int a1 = a.nextInt();
  13.                         
  14.                         System.out.println("请输入您要参与运算的第2个数,回车键结束输入。");
  15.                         Scanner b = new Scanner(System.in);
  16.                         int b1 = b.nextInt();
  17.                         
  18.                         System.out.println("请输入您要运算的方式,填写相对应的数字:\n1:+\n2:-\n3:*\n4:/");
  19.                         Scanner c = new Scanner(System.in);
  20.                         int c1 = c.nextInt();
  21.                         
  22.                         int jieguo;

  23.                         if (c1==1)
  24.                         {
  25.                                 jieguo = a1+b1;
  26.                                 out(jieguo);
  27.                         }
  28.                         else if (c1==2)
  29.                         {
  30.                                 jieguo = a1-b1;
  31.                                 out(jieguo);
  32.                         }
  33.                         else if (c1==3)
  34.                         {
  35.                                 jieguo = a1*b1;
  36.                                 out(jieguo);
  37.                         }
  38.                         else if (c1==4)
  39.                         {
  40.                                 jieguo = a1/b1;
  41.                                 out(jieguo);
  42.                         }
  43.                         else
  44.                                 System.out.print("输入值错误");

  45.                         

  46.                         System.out.print("继续请输入1,结束程序请按输入任意键");

  47.                         Scanner d = new Scanner(System.in);
  48.                         int d1 = d.nextInt();

  49.                         if (d1!=1)
  50.                         {
  51.                                 bl=false;
  52.                         }
  53.                         }
  54.                 }
  55.         public static void out(int jieguo)
  56.                 {
  57.                         System.out.println("结果为:"+jieguo);
  58.                 }
  59. }</p><p>
  60. </p><p>
  61. </p><p>你循环大括号范围弄错啦,真粗心
  62. </p>
复制代码

点评

终于解决了,非常感谢。  发表于 2014-6-3 21:16
回复 使用道具 举报
Lex 发表于 2014-6-3 20:05
忘了,我2了,应该改成public static void out(int jieguo)

那个已经搞定了,我现在想让这个程序最后输入1继续循环,否则退出,结果一直循环下去了。我明明标记了bl=false;
能再帮我看看吗?
最新源码:
  1. import java.util.*;
  2. class JiSuanQi
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 boolean bl = true;
  7.                 while (bl)
  8.                 {
  9.                
  10.                         System.out.println("请输入您要参与运算的第1个数,回车键结束输入。");
  11.                         Scanner a = new Scanner(System.in);
  12.                         int a1 = a.nextInt();
  13.                        
  14.                         System.out.println("请输入您要参与运算的第2个数,回车键结束输入。");
  15.                         Scanner b = new Scanner(System.in);
  16.                         int b1 = b.nextInt();
  17.                        
  18.                         System.out.println("请输入您要运算的方式,填写相对应的数字:\n1:+\n2:-\n3:*\n4:/");
  19.                         Scanner c = new Scanner(System.in);
  20.                         int c1 = c.nextInt();
  21.                        
  22.                         int jieguo;

  23.                         if (c1==1)
  24.                         {
  25.                                 jieguo = a1+b1;
  26.                                 out(jieguo);
  27.                         }
  28.                         else if (c1==2)
  29.                         {
  30.                                 jieguo = a1-b1;
  31.                                 out(jieguo);
  32.                         }
  33.                         else if (c1==3)
  34.                         {
  35.                                 jieguo = a1*b1;
  36.                                 out(jieguo);
  37.                         }
  38.                         else if (c1==4)
  39.                         {
  40.                                 jieguo = a1/b1;
  41.                                 out(jieguo);
  42.                         }
  43.                         else
  44.                                 System.out.print("输入值错误");

  45.                         }

  46.                         System.out.print("继续请输入1,结束程序请按输入任意键");

  47.                         Scanner d = new Scanner(System.in);
  48.                         int d1 = d.nextInt();

  49.                         if (d1!=1)
  50.                         {
  51.                                 bl=false;
  52.                         }
  53.                        

  54.                 }
  55.         public static void out(int jieguo)
  56.                 {
  57.                         System.out.println("结果为:"+jieguo);
  58.                 }
  59. }
复制代码



回复 使用道具 举报
那个out函数里面至少要传一个参数啊  要不怎么打印输出呢
public void static out(jieguo){
}
就行了
回复 使用道具 举报

在方法中添加上参数


import java.util.*;
class JiSuanQi
{
        public static void main(String[] args)
        {
                System.out.println("请输入您要参与运算的第1个数,回车键结束输入。");
                Scanner a = new Scanner(System.in);
                int a1 = a.nextInt();
               
                System.out.println("请输入您要参与运算的第2个数,回车键结束输入。");
                Scanner b = new Scanner(System.in);
                int b1 = b.nextInt();
               
                System.out.println("请输入您要运算的方式,填写相对应的数字:\n1:+\n2:-\n3:*\n4:/");
                Scanner c = new Scanner(System.in);
                int c1 = c.nextInt();
               
                int jieguo;
                if (c1==1)
                {
                        jieguo = a1+b1;
                        out(jieguo);
                }
                else if (c1==2)
                {
                        jieguo = a1-b1;
                        out(jieguo);
                }
                else if (c1==3)
                {
                        jieguo = a1*b1;
                        out(jieguo);
                }
                else if (c1==4)
                {
                        jieguo = a1/b1;
                        out(jieguo);
                }
                else
                        System.out.print("输入值错误");
                }
        public static void out(int jieguo)
                {
      System.out.println(jieguo);
                }
}
回复 使用道具 举报
f78fk 发表于 2014-6-3 20:02
原来是这样,我试试,谢谢!

忘了,我2了,应该改成public static void out(int jieguo)
回复 使用道具 举报
Lex 发表于 2014-6-3 20:00
亲你木有在函数  public static void out()中传递参数啊,怎么会有值呢!
45行改成 public static void ou ...

原来是这样,我试试,谢谢!
回复 使用道具 举报
亲你木有在函数  public static void out()中传递参数啊,怎么会有值呢!
45行改成 public static void out(jieguo)     就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马