oooooook 发表于 2020-8-24 16:56:39

简单问题求解

#include <stdio.h>

int main()
{
      int ch;

      printf("请输入明文:");

      while ((ch = getchar()) != '\n')
      {
                if (ch >= 'a' && ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }

                if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);
      }

      putchar('\n');

      return 0;
}



这里边的两个continue的跳过的本轮循环的内容包含那几个语句

sunrise085 发表于 2020-8-24 16:58:33

continue跳过的是循环内后面的所有语句
第一个continue跳过的是
             if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);

第二个continue跳过的是
putchar(ch);

oooooook 发表于 2020-8-24 17:07:50

sunrise085 发表于 2020-8-24 16:58
continue跳过的是循环内后面的所有语句
第一个continue跳过的是



continue把整个跳过后输入的字符串是怎么输出的?

oooooook 发表于 2020-8-24 17:08:48

sunrise085 发表于 2020-8-24 16:58
continue跳过的是循环内后面的所有语句
第一个continue跳过的是



就是吧putchar(ch)也跳过后字符串是怎么输出的

sunrise085 发表于 2020-8-24 17:10:01

oooooook 发表于 2020-8-24 17:07
continue把整个跳过后输入的字符串是怎么输出的?

你再看看你的程序,在每个continue的上一行不是都有putchar进行输出吗?
每读取一个字符就输出一个字符

sunrise085 发表于 2020-8-24 17:11:55

oooooook 发表于 2020-8-24 17:08
就是吧putchar(ch)也跳过后字符串是怎么输出的

后面的那个putchar(ch)输出的是非字母的字符,若ch是字母,则会转换大小写然后输出

oooooook 发表于 2020-8-24 17:15:12

sunrise085 发表于 2020-8-24 17:11
后面的那个putchar(ch)输出的是非字母的字符,若ch是字母,则会转换大小写然后输出

hhh
我犯傻了{:10_266:}

oooooook 发表于 2020-8-24 17:15:56

oooooook 发表于 2020-8-24 17:15
hhh
我犯傻了

找这个putchar找了一下午{:10_250:}
页: [1]
查看完整版本: 简单问题求解