无法从增量返回int

时间:2018-08-30 11:13:19

标签: java

我目前的目标是采用类似

的字符串
                                                   "###### 
                                                    #    #
                                                    # @ ##"

@是我的“字符”,“#”是我应该避免的墙,我希望我的角色开箱即用,返回路径,我意识到我的例子很糟糕,但我希望你能理解。我目前的想法是读取带有该字符串的文本文件,然后创建一个二维网格数组,然后从那里开始工作,我目前的代码是:

package soko;
import java.io.*;
import java.util.*;

public class Sokoban2 {
    static File file;
    Scanner input;
    static int b;
    static int c;
    static String[][] array;

    public Sokoban2() {
        //array = new String [9][9];
    }


    public int readFile() throws Exception{
        Scanner input = new Scanner(System.in);
        file = new File("C:/Users/joaki/Desktop/sokoban/readin.txt");
        input = new Scanner(file);
        while (input.hasNext()) {
            b = b + 1;
            String line = input.nextLine();
            System.out.println(line);
        }
        input.close();
        return b;
        //array = new String[5][5]; 
        }

    public void insertStuff() {
        //array[1][1]="2";


    }

    public void printStuff() {
    for (int r = 0; r<2;r++){
        String line2 = "";
        for (int d = 0; d <2;d++){
            line2+="["+array[d][r]+"]";
        }
        System.out.println(line2);
    }
    }

public static void main(String[] args) throws Exception{
    Sokoban g = new Sokoban();
    g.readFile();
    //g.insertStuff();
    //g.printStuff();
    //g.creatingGrid(c,b);
    //System.out.println(b);


}
}

我真的很想打印我的b,至少检查它的值,但是我的程序不会返回任何值,它甚至不返回null或0,我也尝试打印它,那里也没有运气, ?

1 个答案:

答案 0 :(得分:1)

您没有将值返回到任何变量,我只是运行您的代码,它可以正常工作,它可以计算文件中的行数。

    int b = g.readFile();
    System.out.println(b);

如果您不将值返回给变量,则您将无法访问主变量中的 b 值,因为它超出了范围,请在此处进行更多说明: https://www.cs.umd.edu/~clin/MoreJava/Objects/local.html

编辑: 我实际上只是意识到您在类中将 b 声明为静态的,因此我决定像上面一样运行它,但仍然可以打印出行数。

    g.readFile();
    System.out.println(b);

如果您要让函数返回一个值,并且您不打算存储 b ,那么请删除类中的静态声明,然后在返回b的函数中声明它。