public class Apples {
static char[][]createBoard(int boardType){
char[][] board = new char [8][10];
switch (boardType){
case 1:
char board[][] = {{' ','1','2','3','4','5','6','7','8','9'},{'1','#','#','#','-','@','-','#','#','#'},{'2','#','#','-','@','@','@','-','#','#'},{'3','#','-','@','@','-','@','@','-','#'},{'4','-','@','@','@','@','@','@','-'}};
break;
case 2:
char board[][] = {{' ','1','2','3','4','5'},{'1','-','-','-','-','-'},{'2','-','@','@','@','-'},{'3','-','-','@','-','-'},{'4','-','-','@','-','-'},{'5','-','-','-','-','-'}};
break;
}
return board;
}
public static void main (String args[]) {
System.out.println("This is your array :");
char chosenboard[][] = createBoard(2);
for (int row = 0; row < chosenboard.length; row++) {
for (int column = 0; column < chosenboard[row].length; column++) {
System.out.print(chosenboard[row][column]);
}
}
}
}
public class Apples {
static char[][]createBoard(int boardType){
char[][]board;
switch (boardType){
case 1:
board = new char[][] {{' ','1','2','3','4','5','6','7','8','9'},{'1','#','#','#','-','@','-','#','#','#'},{'2','#','#','-','@','@','@','-','#','#'},{'3','#','-','@','@','-','@','@','-','#'},{'4','-','@','@','@','@','@','@','-'}};
break;
case 2:
board = new char[][] {{' ','1','2','3','4','5'},{'1','-','-','-','-','-'},{'2','-','@','@','@','-'},{'3','-','-','@','-','-'},{'4','-','-','@','-','-'},{'5','-','-','-','-','-'}}; //here I am declaring and assigning again
break;
}
return board;
}
public static void main (String args[]) {
System.out.println("This is your array :");
char chosenboard[][] = createBoard(2);
for (int row = 0; row <chosenboard.length; row++) {
for (int column = 0; column < chosenboard[row].length; column++) {
System.out.print(chosenboard[row][column]);
}
}
}
}
以前的错误“重复的局部变量”消失了,但我得到了一个新的错误在我的返回板行。它说“本地可变板可能尚未初始化”
您的代码没有编译,因为变量board
已经在switch语句之前定义,并且不能(在该范围内)再次定义。
static char[][] createBoard(int boardType) {
char[][] board = new char[8][10]; // <= declared and assigned
switch (boardType) {
case 1:
char board[][] = {{' ', /* ... */ }}; // <= declared and assigned again
在case中,您可以创建一个新的2D数组,然后将其赋给已经声明的变量,如下所示:
char[][] board; // declaration
board = new char[][]{{' ', '1', '2', '3', '4', '5', '6', '7', '8', '9'}, {'1', '#', '#', '#', '-', '@', '-', '#', '#', '#'}, {'2', '#', '#', '-', '@', '@', '@', '-', '#', '#'}, {'3', '#', '-', '@', '@', '-', '@', '@', '-', '#'}, {'4', '-', '@', '@', '@', '@', '@', '@', '-'}};
仔细看一下您的方法createboard
所做的事情,您可以进一步简化它,直接构造并返回二维数组:
static char[][] createBoard(int boardType) {
switch (boardType) {
case 1:
return new char[][]{{' ', '1', '2', '3', '4', '5', '6', '7', '8', '9'}, {'1', '#', '#', '#', '-', '@', '-', '#', '#', '#'}, {'2', '#', '#', '-', '@', '@', '@', '-', '#', '#'}, {'3', '#', '-', '@', '@', '-', '@', '@', '-', '#'}, {'4', '-', '@', '@', '@', '@', '@', '@', '-'}};
case 2:
return new char[][]{{' ', '1', '2', '3', '4', '5'}, {'1', '-', '-', '-', '-', '-'}, {'2', '-', '@', '@', '@', '-'}, {'3', '-', '-', '@', '-', '-'}, {'4', '-', '-', '@', '-', '-'}, {'5', '-', '-', '-', '-', '-'}};
default:
return new char [8][10];
}
}
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 使用局部变量 例7.3 使用局部变量 #!/usr/bin/python # Filename: func_local.py deffunc(x): print'x is', x
问题内容: 我正在读一本叫做《 Go编程语言》的书,在有关指针的第二章中,写了以下内容 函数返回局部变量的地址是绝对安全的。例如,在下面的代码中,即使调用返回后,由对f的特定调用创建的局部变量v仍将存在,并且指针p仍将引用它: 我完全不明白这一点,应该在执行函数后销毁局部变量。是因为可能v是在堆上分配的。我知道在C语言中,如果您使用malloc分配空间,函数执行后就不会销毁它,因为它在堆上。 问题
我正在尝试使用Mongo和node/express JS的这个map函数构建一个对象数组。由于某种原因,当我运行控制台时,数组返回空。在map函数外部记录日志,但在map函数内部,它显示了每次迭代生成的数组。 为什么会发生这种行为?
问题内容: 我正在使用函数,这样我的程序就不会一团糟,但我不知道如何将局部变量变成全局变量。 问题答案: 这是两种实现相同目的的方法: 使用参数并返回(推荐) 运行时,将获得以下输出 使用全局变量(永远不要这样做) 现在您将获得:
问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方
怎样使一个变量变成“局部”变量? 局部变量 如果变量用local来声明,那么它就只能够在该变量被声明的代码块中可见。 这个代码块就是局部范围。 在一个函数中,一个局部变量只有在函数代码中才有意义.[1] 例子 24-12. 局部变量的可见范围 #!/bin/bash # ex62.sh: 函数内部的局部变量与全局变量。 func () { local loc_var=23 #