如果表达式里包含多个不同类型的数字就必须 首先把它们转换成同一个类型然后才能 计算 这个转换过程叫做隐式类型转换,完全由 计算机完成 隐式类型转换过程中一定把占地小的类型转换 成占地大的类型 如果不同类型存储区大小一样就把整数类型转换 成浮点类型,把有符号类型转换成无符号 类型 C语言里可以临时给一个数字指定一个类型, 这叫做强制类型转换 强制类型转换格式如下 (char)300 强制类型转换有可能导致数据内容丢失 类型转换不会修改现有存储区的内容,计算机 会产生一个新存储区用来记录转换后的数字 分支语句可以在程序运行的时候从多组语句中 选择一组执行而忽略其他组 如果编写程序的时候遇到多种可能性,每种 可能性都需要使用专门的语句处理,这种 情况就可以采用分支结构解决。 if关键字可以用来编写分支 if分支里需要为每种可能性编写专门的 处理语句 if分支里需要为每组语句编写配对的逻辑表达式, 执行的时候如果某个逻辑表达式结果为真 就执行它配对的那组语句 有可能同时执行的语句不可以包含在一个 if分支里 编写if分支之前应该把所有可能性的个数先 确定下来 如果if分支中的所有可能性不会都不执行就 可以省略最后一组语句的逻辑表达式 如果if分支里多个逻辑表达式的结果同时为真 就执行最前面为真的逻辑表达式对应的语句 而忽略后面的语句 if分支里的某一组语句不仅仅只和与它配对的 逻辑表达式有关,还和前面的所有逻辑 表达式都有关 编写if分支的时候尽量把简单逻辑表达式写在 前面,这样可能可以简化后面的逻辑表达式 switch...case关键字也可以用来编写分支 如果分支里的每种可能性都可以用一个整数 表示就可以采用switch...case关键字 编写分支解决这个问题 循环语句可以让一组语句反复多次执行 for关键字可以用来编写循环 for循环里可以让一个变量依次代表一组数字, 然后使用一组语句处理这个变量代表的 每个数字 这个变量叫做循环变量 采用如下格式描述循环变量的变化过程 (把开始数字赋值给循环变量; 用逻辑表达式表示循环变量在变化过程中和结束数字的关系; 循环变量每次变化的规律) 如果一个问题可以采用一组数字的变化过程描述 并且这组数字之间符合某种规律就可以采用 for循环解决这个问题 假设有如下的for循环 for (1;2;3) { 4 } 它按照以下方式分组执行 [1,2][4,3,2][4,3,2]...[4,3,2] 第一组和其他组都不一样 正常情况下for循环一定在两组之间结束 如果某一组最后编号为2的逻辑表达式结果 为真就启动下一组,否则结束循环 如果循环正常结束则循环变量一定落在指定 范围之外 for循环有可能不执行大括号里面的语句 for循环小括号里的每部分都可以省略 如果省略小括号中间的逻辑表达式就表示 逻辑表达式永远为真,这种循环不能 正常结束,这种循环叫做死循环 for循环小括号里前后两部分可以是用逗号 连接的多条语句 C99规范里允许在for循环的小括号里临时声明 循环变量 这种循环变量只能在循环里使用,循环结束 之后就不存在了 可以在循环里使用break;语句立刻结束循环的 执行 一旦执行了break;语句则循环里的一切语句都 不再执行,包括循环变量也不再变化 使用break;语句结束循环后循环变量的数值 一定在指定数字范围内 如果编写循环的时候不容易描述循环的结束 条件就可以编写一个死循环,然后在 循环里用break;语句结束它 可以在循环里使用continue;语句直接跳到 循环大括号的末尾,中间的语句这次循环 就不执行了