黑马程序员技术交流社区

标题: 小困惑!求大神科普!!! [打印本页]

作者: FlyTrem    时间: 2014-4-12 18:54
标题: 小困惑!求大神科普!!!
                if (a >= 'a' && a <= 'z' || a >= 'A'&& a <= 'Z')
                {
                        for (j = 1; j < 4; j++)
                        {
                                char c = a + j;
                                // 这个地方只判断c是不是大于‘Z’就好,为什么还要加上一个数字呢?
                                if (c > 'z' || c > 'Z' && c <= 'Z' + 4 )
                                        c = c - 26;
                                printf("%c", c);
                        }
                }
                else
                        printf("%c", a);[/code]

以上是加密的算法,如输入Ash33ZZzz后输出BCDtopijk33ABCABCabcabc,就是每一个英文字母用后面的三个字母替代。
疑问
// 这个地方只判断c是不是大于‘Z’就好,为什么还要加上4呢?
if (c > 'z' || c > 'Z' && c <= 'Z' + 4 )

作者: stone24    时间: 2014-4-12 19:25
后面c <= 'Z'+4;不用也不会影响结果啊,要后面的话,应该是c<'Z'+4,怎么也不会大于‘Z'+3




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2