java的增量if循环函数在主函数的增量循环中
我正在尝试制作一个Snake Vs block游戏,但对于这部分代码,我只想在我的网格中输入“count”变量中的值。我不希望每次调用此变量时都将其设置为0。因此,我需要找到一种方法,使我的计数器不会在每次调用时重置
我试图在主循环中加入一个增量循环函数,它也是增量循环
问题是,函数的值总是返回到0,因为每次调用函数时它都重置为零。(因为循环)
如何防止每次调用时将其重置为0?把它放在一个全局变量中是可行的,但我不能为我的作业这样做
下面是我所说的代码的两部分:
public static int choix_case (int nbColonnes) {
int max = maximum(nbColonnes);
int random_value = RandomValue();
int count = 0;
do {
if ( random_value == 1) {
count++;
}
if (random_value == 2) {
count++;
}
if (random_value == 3) {
count++;
}
} while(count <= max);
return count;
}
然后:
public static void obtenirNouvelleGrille(int[][] grille, int nbLignes, int nbColonnes)
{
for(int i = 0; i < nbLignes; i++) {
// mettre le compteur de balles et de centres à 0
for(int j = 0; j < nbColonnes; j++){
int choix = choix_case(nbColonnes);
grille[i][j] = choix; // vide
}
}
}
# 1 楼答案
因此,听起来好像您希望在每次调用
choix_case()
时保存本地count
字段。i、 例如,第一次调用时它应该为零,然后每个后续调用都应该“记住”上一次的计数最简单的方法是让调用代码跟踪它,并将其传递给
choix_case()
例如:
这是假设
choix_case()
可以更改为接受另一个参数但是请注意,这实际上不是很好的代码!从
choix_case()
返回的值有点毫无意义,因为您知道它是来自maximum(nbColonnes)
+1的值。目前还不清楚choix_case()
实际上做了什么,因为除了count之外,它的任何字段都没有被使用过,而且调用方很容易就能计算出这个计数也就是说,
choix_case()
的行为与以下情况完全相同: