Java 在同一个 for 循环中找不到符号

标签 java for-loop

在下面的代码中,即使我在同一个 for 循环中初始化了 number,也无法在 number++ 行中找到变量 number .谁能告诉我为什么?

import java.lang.Math;
import java.util.Random;

public class test
{
    public static void main( String [] args )
    {
        String cardNumber; 
        double cardRandom;
        int cardRandomNumber;
        String[] cardSelection = new String[10];

        for (int number = 0; number <=  9; );
        {
            Random ran = new Random();
            cardRandom = ran.nextInt(52 - 1 + 1) + 1;
            cardRandomNumber = (int) Math.round( cardRandom );

            if ( cardRandomNumber > 0 && cardRandomNumber <= 52 )
            { 
                cardNumber =  "card" + cardRandomNumber;
                System.out.println( cardNumber );
                number++; // Says Error: Cannot find symbol
            }
        }   
    }
}

这个程序基本上只是从 1-52 中选择一个随机数,在它的开头添加“卡片”并打印出来。它应该打印出 10 个数字。

最佳答案

下一行中的最后一个分号必须去掉:

for (int number = 0; number <=  9; );

您基本上声明了一个没有主体的for 循环。好的 IDE 应该警告您此类错误。顺便说一句,递增循环计数器应该转到我们都期望的最后一个 for 表达式:

for (int number = 0; number <=  9; ++number) {
  //..
}

顺便说一句,在消除了总是满足您的代码的不必要的变量和条件之后,您的代码看起来像这样:

public static void main(String[] args) {
    Random r = new Random();
    for (int number = 0; number <= 9; ++number) {
        int cardRandom = 1 + r.nextInt(52);
        String cardNumber = "card" + cardRandom;
        System.out.println(cardNumber);
    }
}

说真的。

关于Java 在同一个 for 循环中找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223184/

相关文章:

java - 增强的 for 循环

java - HashedSession 无法转换为 JDBCSessionManager$Session

java - 缩短 .txt 位置以使用扫描仪读取它?

java - 如何使用 Hibernate 在两个实体(不相关的实体)之间进行联接

java - Spring Security SecurityContextHolder.getContext().getAuthentication() 返回 null

java - 使用不同类型的循环获得相同的结果

c - 了解C语言中这种形式的for循环

javascript - Reactjs:在 componentDidMount 中使用 for 循环

java - javac调试信息选项-g :vars do?是什么意思

java - 如何打印一系列从 1 小于 x 到 0 结束的数字?