小羊也疯狂 2016-12-02 11:00 采纳率: 100%
浏览 1438
已采纳

java 局部变量与全局变量问题

图片说明
整个代码求的是一个文件夹的大小 (文件夹里可能还有文件夹) 用的递归

问题1:原代码是书上例子 结果正确
红色标出的是我自己重写遇到的 结果是很大的负数
按我的理解 size 在方法里面是局部变量 作用整个方法
在外面是类变量 作用整个类
但是在这段代码中应该没什么不同吧,因为我只有一个方法,SIZE意思是固定的
问题2:
第14行的 files != null && 能不能省掉?

代码如下:
import java.io.File;
import java.util.Scanner;
public class Directory{
public static void main(String []args){
System.out.println("Enter a directory of file ") ;
Scanner input = new Scanner (System.in);
String directory = input.nextLine();
System.out.println(getSize(new File(directory)) + "bytes");
}
public static long getSize(File file ){
long size = 0;
if (file.isDirectory()){
File[]files = file.listFiles();
for (int i =0;files != null && i<files.length; i++)
size+=getSize(files[i]);
}
else
size +=file.length();
return size;
}
}

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥50 有没有大佬看一下关于思科的这道题怎么做
      • ¥30 求十字路口交通灯S7-200plc,今天早上八点前。
      • ¥20 如何用智能手表oppowatch3实现个人热点功能
      • ¥15 运营商打开wanpush会有怎么样的危害
      • ¥15 Java编程题,定义一个时钟
      • ¥15 Python面向对象编程——生成多项式的一阶导数
      • ¥15 在编写C++程序遇到了问题
      • ¥15 java程序查找字符串中所有的回文并输出
      • ¥15 怎么让只支持对.exe 和.dll文件进行加壳的加壳器,同时让它也支持php文件加壳呢
      • ¥15 这两个数学公式什么意思?