C语言学习系列文章目录
C语言是结构化的语言,今天的学习的内容是从结构化入手;
文章目录
一、结构类型
顺序结构、选择结构、循环结构
二、C语言中语句与结构
选择结构
分支语句
if
switch
1.if语句
在C语言中,只要不是0就是真,只有0是假
int a,b,c,d;//可以赋值
a=0;b=1;c=2;
if(a>b)
d=10;
else if(b>c)
d=20;
else
d=30;//执行的结果应该是d=30,假如b换成了3那么结果就是d=20
在if结构中,如果执行较多语句,那么可以用if() {} else {}
来实现,也就是没有{}的情况下默认只会执行下一条语句;当然if else if可以无限嵌套循环的;
当然语句也可以写成
if(b>a&&b<c)也可以写成a<b<c
d=10;
else
d=20;
特别的else是和最近的if匹配哦,也就是说
if(a>b)
if(a<b)
d=10;
else
d=20;
d=30;
//注意这上面的这个代码是没有执行结果的,因为首先a<b,所以直接进入了第一个if的else结构;
//因为第一个if没有else所以没有结构;
//else总是与最近的if进行匹配;
常用代码的优良书写习惯
int num =3;
if(num==5)
return 0;
return 1;
------------------------------------------
上面的代码可以被替换为如下更加优良的代码书写习惯
------------------------------------------
int num =3;
if(num==5)
return 0;
else
return 1;
------------------------------------------
当然还可以继续优化成如下的更加好的代码
------------------------------------------
int num =3;
if(5==num)//这里用5==num可以避免如果漏了一个=引起的逻辑bug并且很难发现,因为5=num一定会报错的
return 0;
else
return 1;
2.switch语句
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
printf("周一");
break;
case 2:
printf("周二");
break;
}
}
/*
以上就是switch的表达式的用法,特别的swtich内的语句没有顺序问题哦!可以任意排序因为是匹配到才进去的;
switch(整形表达式)
{
case 整型常量表达式:
语句;
break;//跳出指令,避免继续往下一个case进行执行;
//break要多用,因为break可以帮助理解
default:
语句; //如果case没有匹配的那么做什么操作
break;
}
*/
根据上面的代码逻辑我们可以让他输出1-5为工作日,6-7为休息日,因为无论是case几都可以跳下去的
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
循环结构
循环语句
while
for
do while
1.while语句
while就是一个循环语句,加入符合条件那么就是进行操作,不符合就结束;
while(exp1)
{
语句;
//可以用break来跳出循环
}
int i = 1 ;
while(i<=10)
{
if( 5 == i )
break;//一样可以用break来结束循环;当i=5的时候将会结束循环;
printf("%d",i);
i++;
}
事实上break就是用于中断循环的,
int i = 1 ;
while(i<=10)
{
if( 5 == i )
continue;//跳过本次循环的代码,然后重新从while的条件开始判断;因而本代码是个无限循环;
printf("%d",i);
i++;
}
getchar()和putchar()和EOF
getchar就是获取一个字符,putchar就是输出一个字符,EOF就是-1结束getchar的意思,进入getchar后,可以通过ctrl+z来退出,也就是让getchar反馈EOF从而结束getchar;
EOF就是end of file就是文件结束的标志;
int main()
{
int ch = 0;
while((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}
getchar的工作原理:就是在getchar-缓冲区-键盘;
譬如输入A再回车再A再回车缓冲区就是A,\N,A,\N
的形式,那么getchar就会读取先是A然后是\N然后A然后\N就是这样的按顺序读取每次读取一个字符;
这也就意味着getchar是不会漏掉任何一个字符的!
goto
语句
这个部分还没有开始学习,但是当时的记忆中应该是跳转到第几行的代码好像,也因为这种跳转并不好读懂,所以一般不会用goto语句
在C语言中,用;隔开的就是语句每一个;就是一个语句
总结
这个部分的学习是在春节前了,终于在节假日期间完成了这个部分的内容,要抓紧了,很多内容都还没学习呢!今天主要就是while和if语句的学习,包括else if的内容都很重要,感觉捡回来很多了抓点进度应该还行;