317109954 发表于 2021-11-3 22:11:46

if语句课后作业的问题又来了,

在做if语句课后作业的时候,又遇到问题了,书上和视频里的讲解if下面接的都是else或者else if或者printf("........\n");
可是这个作业if下面接的是ch = ch + 32; // ch加32,变成小写,然后赋值回ch;    书上说是逻辑值为真所执行的语句,程序块。是什么程序块都可以接吗,还是有个什么说法?不知道啊,,就知道可以接这样一个程序块。
反正就是莫名其妙的。。。。突然出现这样一个程序块。有没有什么说法或者什么逻辑意思可以帮助记忆的。
感觉好像没什么问题,又总觉得出现的很突然。反正以后我就这样写就对了是吧。还是必须这样写有规定的。

if (ch >= 'A' && ch <= 'Z')
      {
                ch = ch + 32; // ch加32,变成小写,然后赋值回ch
      }
      else if (ch >= 'a' && ch <= 'z')
      {
                ch = ch - 32; // 同上
      }

jhq999 发表于 2021-11-3 22:21:08

本帖最后由 jhq999 于 2021-11-3 22:22 编辑


ch = ch + 32;// ch = ch +('a'-'A');
ch = ch - 32;//ch = ch +('A'-'a');

村里小黑 发表于 2021-11-4 08:39:45

看一下ASCII码表,字符'A'与‘a’相差32,if语句判断当是一个大写字母A-Z时,加上32变成a-z的码表值,当判断是a-z时,减32变成A-Z

317109954 发表于 2022-10-7 12:45:02

坚持,,,,学习,,

gandixiwang 发表于 2022-10-8 14:50:49

{:10_265:}

我是扬帆起航 发表于 2022-10-8 20:22:16

一般字母都会有ASCLL值,定义字符变量,字符对应的ASCLL值加或者减都会改变ASCLL值,所对应的字符都会改变,a~z到A~Z的ASCLL值相差32,例如char ch='a',ch=ch-32,对应的ASCLL值改变,对应值变为A对应值。程序块的话我认为这是自主编译的,判断为真时执行,否则不执行
页: [1]
查看完整版本: if语句课后作业的问题又来了,