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:22 编辑
ch = ch + 32;// ch = ch +('a'-'A');
ch = ch - 32;//ch = ch +('A'-'a'); 看一下ASCII码表,字符'A'与‘a’相差32,if语句判断当是一个大写字母A-Z时,加上32变成a-z的码表值,当判断是a-z时,减32变成A-Z 坚持,,,,学习,, {:10_265:} 一般字母都会有ASCLL值,定义字符变量,字符对应的ASCLL值加或者减都会改变ASCLL值,所对应的字符都会改变,a~z到A~Z的ASCLL值相差32,例如char ch='a',ch=ch-32,对应的ASCLL值改变,对应值变为A对应值。程序块的话我认为这是自主编译的,判断为真时执行,否则不执行
页:
[1]