【问题标题】:change for content in java depending on boolean根据布尔值更改java中的内容
【发布时间】:2016-03-03 20:29:25
【问题描述】:

我想根据随机布尔值浏览从0 到NB_MAX 或从NB_MAX 到0 的表。

我尝试使用?: 运算符:

for (int i = (bool) ? 0 : NB_MAX; i < ((bool) ? NB_MAX: 0); i++) {

问题是在i++和i--之间切换。

怎么做?

【问题讨论】:

    标签: java for-loop boolean


    【解决方案1】:

    如果您在尝试时在 for 循环声明中插入三元运算符,则您的代码可读性不强。

    生成两个 for 循环会更易读,其中一个根据条件输入。

    if (bool)
    {
        for (int i = 0; i < NB_MAX; i++)
        {
            body(i);
        }
    }
    else
    {
        for (int i = NB_MAX - 1; i >= 0; i--)
        {
            body(i);
        }
    }
    

    【讨论】:

    • 好吧,我会做 3 次,所以它的可读性也不高
    • 我不明白你的意思。你有3个for循环?我在你的问题中只看到 1 个。
    • 同样的问题,所以我没有写3次同样的东西
    【解决方案2】:

    这应该可以解决问题:

    for (int i = (bool) ? 0 : NB_MAX; (bool) ? i < NB_MAX : i > 0; i = (bool) ? i+1 : i-1) { }
    

    【讨论】:

    • 嗯,说最后一个布尔值总是正确的,我不明白为什么?
    • 我仔细检查了它。表达式的第二个条件无效。我已经编辑了我的答案。现在应该可以正常工作了。
    • 非常感谢!你为我节省了很多时间
    猜你喜欢
    • 2015-08-29
    • 1970-01-01
    • 2022-10-13
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2020-08-03
    • 2017-10-10
    相关资源
    最近更新 更多