一、类型转化
只有类型相同的数据才能运算,如果数据不同的数据需要先转换为相同的类型后再进行计算
自动类型转换:
转换规则:
以不丢失数据为基础,可以适当的牺牲一些空间
1、字符少的向字节多的转(优先级最高)
2、有符号的向无符号的转
3、整型向浮点型转
注意:char short 如果与不同类型的数据运算时,会先提升到int类型后再参与运算
强制类型转换:
(新类型名)数据;
例: char a;
(int)a
这种方式有可能会丢失数据,慎重使用
二、switch开关分支语句
swicth(n) //n可以是数值、表达式,运算结果必须是整数
{
case val: //如果val == n ,则打开执行开关
...
//val必须是常量
break; //关闭执行开关,结束switch
//如果每个case后都加break,
//switch中不能使用continue配合
//case a ... b :可以表示[a,b],但是只有GNU编译器才能支持该语法,不建议使用
case val1:
...
break;
default:
//如果所有的case都没有打开,则最后打开default,并且放在任何位置都可以最后打开
}
三、for循环语句
循环就是一种让代码反复执行的方法,达到你向达到的效果
for 循环时一种非常灵活、变化多样且危险(相比其他循环)的循环
for 一般使用一个变量来引导循环的执行,该变量叫做循环变量i index
for([1];[2];[3])
{
[4]
}
[1]、给循环变量赋初值.C99以上标准才可以在此处定义循环变量 -std = gnu99
[2]、判断循环变量是否到达边界,如果没到达,进入循环
[4]、被反复执行的代码,称为循环体
[3]、改变循环变量,防止出现死循环,一般对循环进行自加或者自减
1、2、4、3、2、4、3 ....
大口号问题:
1、建议上下对齐
2、如果循环体中只有一行代码,大括号可以省略
但是不利于拓展,一般的商业代码都要求大括号不能省略
for循环各种写法:
for(;;)
{
// 死循环
}
int i=0;
for(;i < 10;i++)
{
}
for(int i=0; ;i++)
{
if(i >= 10)
{
break;
}
}
for(int i=0;i<10)
{
...
i++;
}
练习3:计算出所有的三位水仙花数
练习4:输入一个正整数,判断是否为素数
四、while循环语句
while(表达式)
{
//循环体
}
当表达式为真时执行循环体,执行完后重新判断表达式,一次类推,知道表达式为假,结束循环
while 相当于for的精简版本, for(;表达式;)
for 循环专门负责解决明确知道循环次数的问题
while 循环专门负责解决不确定循环次数的问题
五、do while 循环语句
do{
// 循环体
}while(表达式) //表达式为真循环继续,为假结束循环
先执行循环体,再判断循环条件,该循环体至少执行一次
适合先干活、后检查的特殊情况,例如输入密码、文件内容判断
问:for\while\do while 区别?
六、循环嵌套
循环语句中包含了循环语句
外层循环执行一次,内层循环执行n次
练习5、输入一个正整数,判断是否时回文数
练习6、模拟输入6位密码,输入的密码正确显示"登陆成功"
输入错误提示还有几次机会,并继续输入密码,最多错三次,
否则显示“账号已锁定”,请联系柜台,并结束程序
作业:
1、99乘法表
2、编程解决百钱百鸡问题
公鸡 5 母鸡 3 3小鸡 1
3、计算出100~1000之间所有素数