分支与循环
c语言是一门 结构化 的程序设计语言; 顺序结构;选择结构;循环结构;
分支语句 : if;switch
循环语句 : while;for;do while
goto语句什么是语句:
c语言中由一个分号隔开的就是一条语句; 只有一个分号叫空语句;
分支语句
if语句
语法结构:



注意用 && 连接;
else与最近的if匹配;
加上大括号就可以和上面的对应;
使用了赋值的=;
敲代码时可以将a与1的位置调换,这样不小心写错时程序才会报错;
switch语句
switch(整形表达式)//括号里面的必须是整型;
{ 语句项;//case后面的必须是整型常量表达式;case后面加冒号****;case语句中也可以出现if语句;
break----终止--让程序直接结束switch语句;不加会继续打印接下来的语句
case 1--指day的值为1;
break也不是必须的:
若要在输入超出范围时,做出反馈则要加上default://注意是冒号;可以加在语句列表的任意位置;
循环语句
while
语法结构:
while(表达式)//表达式为真则执行;
{
循环语句;
}// 要包含两条以上的语句需要加大括号;
break停止了循环;注意此时break后面为分号;
改为continue;
1 2 3 4 后光标依然在闪,没有出现“按任意键终止”,说明程序没有结束; continue之后,程序返回了while(i <= 10); continue-----终止本次循环continue后的句子,并返回开头;
getchar();//获取键盘输入; putchar(ch);//输出ch的值; 字符可以用整型接收(ASCII);
在输入EOF后点击回车,程序并没有终止。这是因为输入了三个字符,getchar()读了三次,每次打印一个。
按CTRL+z 后按回车程序停止;
EOF----end of file----值为-1;文件结束标志;
只重复‘0’~‘9’的数字;
输入函数工作时要在输入缓冲区读取字符,输入123456后点击回车,输入缓冲区为123456\n,scanf把123456读走,剩下的\n被getchar读走;\n就是回车;
\n在ASCII中对应10;
再加一个getchar();提前把\n读取则可以解决;
当输入了一个空格时,程序出现了问题;
scanf只读取空格之前的内容,第一个getchar读取了空格;
利用循环语句解决;
for循环
语法
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分;表达式2为条件判断部分,用于判断循环何时终止;表达式3为调整部分;
例:
执行顺序:i=1--> i<=10 --> printf --> i++ -->i<=10 break;
注意 { } ;
continue;
因为i++在上方,不会出现死循环;
建议
1.不可在for循坏内修改循环变量。 2.建议for语句的循环变量的取值采用前闭后开的写法。例:i = 1;i<10,这样便于理解;
变种1:
for语句的初始化、调整、判断都可以省略,但是for循环的判断部分被省略后,判断结果为:恒为真; 所以以上代码会陷入死循环;
会打印100个haha;
j=0被删除,第一次执行完第二个循环后,j=10,所以只会打印10个haha;
变种2:
题: for(i=0;i=0;i++)//i=0为赋值,i=0后,i的值为0,为假,所以执行0次;
do...while循环
do
循环语句;
while(表达式);//循环至少一次;
break;
continue;
陷入死循环;
二分查找