为什么我的代码片段(旨在防止连续两次收到相同的结果)不执行任何操作


    while(true){
        while(word.equals(lastWord)){ 
            word = wordList[genNum.nextInt(15)];
        }
        System.out.println(word);
        word = lastWord;
        word = wordList[genNum.nextInt(15)];
        Thread.sleep(100);
    }

对于上下文,genNum是一个导入的随机...对象?工具的东西

在我看来,这是这样写的:

For all eternity:
If word == lastWord, get another random word from the word list until it isn't.
Print out word
Update lastWord
Get a new random word
Wait and return.

但是,在控制台中,我仍然在这里和那里获得连续的重复项。对我来说,出于某种原因,这意味着第二个 while 循环中存在问题。我是否误解了while循环语法,还是其他事情都?

当你找到一个新单词时,你设置word = lastWord .您可能希望改为执行lastWord = word

在任何编程语言中,存储数据的流程都是从右到左的。因此,每当您想将任何值保存到某个变量时,该变量必须位于"="符号的左侧,并且该值必须位于"="的右侧

例如:你有变量号,你想为该变量设置值 10,你必须写成

数字 = 10;

因此,值 10 将以可变数字存储。

最新更新