2 reborn tou reborn_tou 于 2016.09.08 10:12 提问

JAVA数组传参以及返回,打印时出现找不到符号求问哪里出错了?

package calculate;

public class Calculate {

public static void main(String[] args) {
    // TODO code application logic here
    Calculate caculate = new Calculate();
    int count=0;
    for(int i=0;i<50;i++){
        int x=(int)(Math.random()*2);//设置随机0,1变量
        int first=(int)(Math.random()*100);//设置随机0-100变量
        int second=(int)(Math.random()*100);
        int[] result = new int[50];

        if(x==0)
            caculate.addition(i,first,second,result);//调用加法
        else
            caculate.subtraction(i,first,second,result);//调用减法

        count++;
        if(count%5==0) System.out.println("\n");//每五题换行
    }
    for(int i=0;i<50;i++)
            //--------------------------------------------------------------
            //此处的result被提示找不到符号-------------------------------------------------
            //
    System.out.print((i+1)+":  " +  result[i]);
}
//加法
public void addition(int j,int a,int b,int[] result){
    System.out.print((j+1)+":  "+a+" + "+b+" =     ");
    result[j] = a + b;
}
//减法
public void subtraction(int k,int m,int n,int[] result){
    System.out.print((k+1)+":  "+m+" - "+n+" =     ");
    result[k] = m - n;
}

}

3个回答

u011288271
u011288271   2016.09.08 10:18
已采纳

你把result数组的定义拿到它所在for循环的外面。

Arthur_ZBY
Arthur_ZBY 回复reborn_tou: 局部变量只能在所在的这个循环中被找到,在程序中都能用到的变量最好用全局变量,这样在此程序的任何地方都可以被访问到
接近 2 年之前 回复
u011288271
u011288271 回复reborn_tou: 因为如果你在for循环里面定义,那result的生命周期,就到for循环结束随之结束。 就是说,在for循环的那一对大括号里面,result数组是有效的,出了以后,就找不到了。
接近 2 年之前 回复
reborn_tou
reborn_tou 噢噢!可以了,求问一下为什么?
接近 2 年之前 回复
Veggiel
Veggiel   2016.09.08 10:17

你的result在上面的for循环里面,是个局部变量,你下面的for循环当然访问不到result

reborn_tou
reborn_tou 谢谢!知道了!
接近 2 年之前 回复
asqin
asqin   2016.09.08 10:24

变量的作用域出现问题,同一楼上的看法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java找不到符号
我抄书上一段java源代码,它是用来判断闰年的算法,如下:public class RunTest { public static void main(String[] args) { RunCheck obj = new RunCheck(); int year = 2003; System.out.print(isRun(year)); } } class RunCh
求帮助,哪里错了?
#include #include #include using namespace std; int main() { double a,b,c; double n,delta; cin>>n; double i; for(i=1;i { cin>>a>>b>>c; double x1,x2; delta=b*b-4*a*c; cout if (fabs(delt
java第二天--cmd编译报错:找不到符号 问题解决
今天学习Java对象,一开始我创建了Dog类,并在主函数中引用了对象,都在同一个文件夹里。但是编译报错找不到符号 下面是Dog.java class Dog{ int age; String name; String color; void jump(){ System.out.println("jump"); } } 下面是DogTest.java  public clas
哪里错了
不知道哪里错了 请教一下~    输入一组数组反序输出~用的是外部变量  #include "stdio.h"  int a[10]; int  fd(int b[10]); {int i;    for (i=0;i  a[9-i]=b[i];        }    main(){int j,p,a[10]; for(j=0;j scanf ("%d",&a[j]); fd(a
【Java笔试题】输出数组中元素出现次数过半的元素
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1、2、3、2、2、2、5、4、2},由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。
java编译找不到符号
import java.util.*; public class ArrayList{ public static void main(String[] args ){ ArrayList ar=new ArrayList(); //添加元素 ar.add('j'); //a.add("java2"); //a.add("java3"); //a.add("java4"
java 调用 powershell 并传参 返回
java 调用 powershell 并传参 返回
Javac 出现找不到符号,符号:类名**
使用Javac 去编译一个类HelloImpl.java 其中HelloImpl.java引用了同包下的一个接口Hello 即使先运行了javac hello.java  使用javac HelloImpl.java 时候出现如下图错误 原来是需要两个java文件需要一起编译,才不会报错
Java命令行编译文件时出现的错误,找不到符号或软件包不存在等对应代码
习惯了eclipse的自动编译,Java命令行编译、执行文件只会最基础的部分,就是对单文件的编译和执行,而且不包含任何外部JAR包。但有时候你还非得用命令行,会碰到一些问题,博主这里给出几种常见的问题及解决方法。问题一:找不到符号或软件包不存在,问题二:JAR包怎么引入,问题三:指定class文件存放位置
java: 找不到符号
源地址1:https://blog.csdn.net/qq_35091305/article/details/75447483源地址2:https://blog.csdn.net/qq_17213067/article/details/78895302翻了一下CSDN,暂时发现了以下几种情况:1.JAVA配置的环境变量出了问题。一个分号或者空格都可能导致错误。2.将提示没有符号类的文件打开,右键单...