当前位置: 首页 > 知识库问答 >
问题:

如何从Java的for-loop中获得最后一次迭代的字符串?

公孙宏畅
2023-03-14

我怎样才能从这个循环中的最后一次迭代中获得一个字符串?

    public void Flip()
    {
        for (int i = 1; i <= numberOfFlips; i++ )
        {
            System.out.println("Flip " + i + ": " + headOrTail);
            i++;
            System.out.println("Flip " + i + ": " + headOrTail2);
        }

    }

numberOfFlips=2的输出为:

翻转1:头部

翻转2:尾部

等等。

我的目的是从上次迭代结果中得到“headortail”,并能够用它做些什么。有什么提示或解决办法如何达到它?

共有2个答案

魏凯捷
2023-03-14

只要问一下是不是las循环。

public void Flip()
    {
        for (int i = 1; i <= numberOfFlips; i++ )
        {
            System.out.println("Flip " + i + ": " + headOrTail);
            i++;
            System.out.println("Flip " + i + ": " + headOrTail2);
            if(i==numberOfFlips){
                <do what you want here>
            }
        }

    }
卫劲
2023-03-14

当前代码已经能够获得上次翻转的结果。由于您声明的变量headortail超出了循环的范围,您只需更新每个翻转,并可以在循环之后打印它。

for (int i = 1; i <= numberOfFlips; i++ )
{
    headOrTail = newFlip();    //update your new flip
    System.out.println("Flip " + i + ": " + headOrTail);
}

System.out.println("My last flip: " + headOrTail );

注意:当前代码将始终打印相同的翻转结果,因为您没有更新headortail

如何快速创建newFlip()方法以您的方式使用它?

这取决于“翻转”的数据类型。如果使用integer表示翻转(例如,0表示头部,1表示尾部),则创建一个方法来返回0-1的随机数。

//One of the possibilities..
public static int newFlip(){
    Random rnd = new Random();
    return rnd.nextInt(2);    //you can use Math.random() as well
}

如果所有内容都包含在一个类中,您可以这样做:

//Example..
class CoinTosser
{
    private static Random rnd = new Random();
    private int currentFlip;  //this is also your last flip

    public void newFlip(){
        currentFlip = rnd.nextInt(2);  //in this case, no need to return toss result
    }

    public void flipCoin(int times){
        for(int i=0, i<times; i++){
            newFlip();
            System.out.println("Attemp "+ (i+1) + ":" + currentFlip==0?"Head":"Tail");
        }
    }
}
 类似资料:
  • 如果格式不正确,请原谅,这是我的第一篇帖子。我想看看是否以前发现过这个问题,但我找不到任何人有与我相同的问题。 我试图学习Java,但我无法弄清楚为什么我的for循环没有输出最后一次迭代。我正在完成codeabbey的练习,并相对轻松地完成了前两个。然而,在第三个和第四个问题上,我无法在最后一次迭代中输出我的for循环。 我开始在谷歌上搜索,并想将我的答案与其他人的答案进行比较。当我的代码与我找到

  • 问题内容: 假设我在bash中有一个for循环,如下所示: 是否保证了迭代的顺序,即循环将始终以相同的顺序处理文件吗?如果可以保证,顺序是否按字母顺序? 问题答案: 根据bash手册页: 路径名扩展 拆分单词后,除非已设置-f选项,否则bash会在每个单词中扫描字符* 、?和[。如果出现这些字符之一,则将该单词视为一个模式,并替换为与该模式匹配的文件名按字母顺序排列的列表(请参见下面的“模式匹配”

  • 问题内容: 我有 使用JavaScript,如何获得最后五个字符或最后一个字符? 问题答案: 不要使用。请使用此方法,因为它与跨浏览器兼容(请参阅IE)。

  • 问题内容: 如何获取字符串的最后一个字符? 问题答案: 代码: 输出:

  • 问题内容: 我正在尝试获取任何字符串的最后三个字符,并将其另存为另一个String变量。我的思考过程很艰难。 对于缓冲区或索引,我不知道如何使用getChars方法。Eclipse使我拥有这些功能。有什么建议? 问题答案: 为什么不只是? 更新资料 在致电之前,请确保您检查的长度至少为3个字符:

  • 如何从IronPyhon中的字符串中删除最后一个字符? 我正在寻找子字符串方法或类似的方法。