Java 为什么会有";对于每一个“;循环不';t的工作原理像“a”;至于;本例中的循环?

Java 为什么会有";对于每一个“;循环不';t的工作原理像“a”;至于;本例中的循环?,java,arrays,for-loop,Java,Arrays,For Loop,我需要一些代码方面的帮助,当我尝试用“for循环”显示Java中的所有字符时,没关系,Java显示了所有字符,当我用“for each”执行此操作时,我只有未定义的符号 char[] chars = new char[65535]; for (int go = 0; go < chars.length; go++) { // THIS CODE IS OKAY! // for (int go : chars) { // **THIS CODE DOESN'T WOR

我需要一些代码方面的帮助,当我尝试用“for循环”显示Java中的所有字符时,没关系,Java显示了所有字符,当我用“for each”执行此操作时,我只有未定义的符号

char[] chars = new char[65535];
    for (int go = 0; go < chars.length; go++) { // THIS CODE IS OKAY!
        // for (int go : chars) { // **THIS CODE DOESN'T WORKS! WHY??** 
        chars[go] = (char) go; // Change int type to char
    }
    for (char owo : chars) { // Output characters
        System.out.println(owo);
    }
char[]chars=新字符[65535];
对于(intgo=0;go
阵列中没有任何内容,数字65535只是阵列的大小,这意味着 字符[0]到字符[65534]

for (int go : chars) {
在确定数组不是空的情况下使用

for (int go = 0; go < chars.length; go++) {

您的字符数组不包含任何内容。在第一个示例中,您使用循环的计数器来创建/设置所有可能的字符!由于增强的for循环没有计数器,这显然不起作用,并且仅将类型声明为int表示对增强的for循环的误解。“当我尝试用对于循环“没关系,java向我展示了一切”,我对此表示怀疑。至少对于您提供的代码(您的第一个代码没有打印任何内容,您正在做两件不同的事情)。
for(int-go:chars)
考虑到
chars
的基本类型不是
int
,这有点奇怪。除了其他人指出的逻辑缺陷之外。因此,如果我需要使用only for each循环执行此程序,它是如何实现的?如果您想使用
for(int go:chars){
您必须添加另一个变量@Ess check my edit当
chars
没有
int
作为其基类型时,为什么使用
int
呢?这里显示的for each循环不好。它提取
go
但从不在循环中使用该变量。这告诉我们这是错误的方法。@LewBloch在您的第一个注释y中如果你是真的,第二个问题是OP问的,那么如果我需要做这个程序,每个循环只有一个,怎么办?如果你能分享另一个解决方案,我会很高兴LewBloch
int i = 0;
for (int go : chars) {
    chars[i] = (char) i;
    i++;
}