Java 在计算中,是否可以基于单行if语句进行加法或减法运算?

Java 在计算中,是否可以基于单行if语句进行加法或减法运算?,java,if-statement,calculation,Java,If Statement,Calculation,(爪哇) 问题的措辞有点难,但我的意思是: 我正在研究一个简单的Ceasar密码,它基于是加密还是解密,应该在与字符相关的值中添加或减去密钥。因此,这就是我想到的: // if direction == true, shift forwards (encrypt), else shift backwards (decrypt) if (direction == true) { newPos = (character - 'a' + key)

(爪哇) 问题的措辞有点难,但我的意思是:

我正在研究一个简单的Ceasar密码,它基于是加密还是解密,应该在与字符相关的值中添加或减去密钥。因此,这就是我想到的:

        // if direction == true, shift forwards (encrypt), else shift backwards (decrypt)
        if (direction == true) {
            newPos = (character - 'a' + key) % 26 + 'a';
        } else if (direction == false) {
            newPos = (character  - 'a' - key) % 26 + 'a';
        }
但我想知道这是否可以缩短,这样它就可以根据是否应该加密或解密在计算中放置“-”或“+”符号,例如:(我知道下面的代码不起作用,但它说明了我的意思)

因此,我想知道在Java中是否有这样的方法?我不确定这对保持代码整洁是否有巨大的好处,但我认为这可能有助于消除代码中的一些重复。到目前为止,我还无法在网上找到答案


编辑:我不一定需要上述场景的解决方案(这正是我遇到这个主题的原因),但我的意思是这篇文章是一个更一般的问题,关于这是否可能以及如何实现。

您不能返回运算符,但可以返回正值或负值:

'a' + ((direction == true) ? key : -key)
也可以写成:

'a' + (direction ? key : -key)
或者您可以将方向更改为int:+1或-1,然后使用乘法:

'a' + direction * key

你可以先把
if(direction==true){…}else if(direction==false){…}
改为
if(direction){…}else{…}
==true
对于布尔值是多余的。我知道这一点,但这不是问题的重点。此外,我认为这可能有助于提高可读性。
'a' + direction * key