您能否基于计算中的单行if语句进行加法或减法?

问题描述 投票:1回答:1

(Java)提出这个问题有点困难,但这就是我的意思:

我一直在研究一个简单的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';
        }

但是我想知道是否可以缩短它,以便根据是否应该加密或解密,将其放置在计算中的“-”或“ +”符号,例如:(我知道以下内容:代码不起作用,但是它说明了我的意思)

        // if direction == true, place a '+', else place a '-'
        newPos = (character - 'a ' ((direction == true) ? + : -) key) % 26 + 'a';

因此,我想知道在Java中是否有任何方法可以做到这一点?我不确定这对于保持代码的清洁是否会有巨大的好处,但是我认为这样做可能有助于消除代码中的某些重复。到目前为止,我一直无法在线找到答案。

编辑:对于上述场景,我不一定需要解决方案(这只是我遇到这个主题的方式),但是我的意思是,此帖子是关于是否可行以及如何实现的更一般性的问题。

java if-statement calculation
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.