小编Daa*_*ape的帖子

返回for循环或外循环

今天有人告诉我return在Java中使用关键字.我编写了一个简单的for循环来验证数组中的某些东西.假设array是一个长度为n的数组,这是我的代码:

for (int i = 0; i < array.length; ++i) {
    if (array[i] == valueToFind) {
        return true;
    }
}
return false;
Run Code Online (Sandbox Code Playgroud)

现在有人告诉我这不是很好的编程,因为我n在循环中使用语句,这会导致垃圾收集失灵.因此,更好的代码将是:

int i = 0;
while (i < array.length && array[i] != valueToFind) {
    ++i;
}
return i != array.length;
Run Code Online (Sandbox Code Playgroud)

问题是我无法正确地阐述为什么第一个for循环不是一个好习惯.有人可以给我一笔费用吗?

java for-loop while-loop

26
推荐指数
2
解决办法
7万
查看次数

在OpenGL中查看网格(lwjgl)

我正在使用LWJGL.我正在尝试使用GL_TRIANGLE_STRIP创建一个简单的3D地图,它工作正常.但现在OpenGL会自动填满每个三角形.我想知道OpenGL是否有可能只绘制每个三角形的轮廓.通过这种方式,我可以更好地了解我正在做的事情.

java opengl lwjgl

5
推荐指数
1
解决办法
1990
查看次数

Java printf不打印

我正在尝试用Java制作跨平台控制台进度指示器.因此,我使用System.out.printf方法打印出一个百分比:

System.out.printf("\t%2.2f%%\b\b\b\b\b\b", percentage);
Run Code Online (Sandbox Code Playgroud)

我把它放在一个for循环中.我遇到的问题是,在整个for循环完成之前,它不会打印任何东西.这是一个显示问题的程序示例:

public class Test {

    public static void main(String[] args) {
        for(int i =0; i<5000; i++){
            System.out.printf("\b\b\b\b\b\b%2.2f%%", ((float) i/5000f)*100f);
            System.out.flush();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为问题与编译器优化有关,但我并不害羞.奇怪的是,System.out.println当for循环运行时会打印.

编辑:我忘了将其添加到问题中.但我已经尝试冲洗缓冲区了.这没什么区别.添加%n到我的printf行的末尾但是它启动了换行符,我真的需要它来重用当前行.

所有对立的解决方 但它们只适用于真正的游戏机.不是netbeans或eclipse控制台.

java printing console

5
推荐指数
1
解决办法
2249
查看次数

标签 统计

java ×3

console ×1

for-loop ×1

lwjgl ×1

opengl ×1

printing ×1

while-loop ×1