C语言学习系列文章目录
一、for循环
for循环类似于while但是有所不同;
他的语法形式如下:
for(exp1;exp2;exp3)//exp1是初始化,exp2是判断条件,exp3是调整条件
{循环语句;}
for循环同样可以适用于break的使用,也就是说一样可以通过break来强制中断循环;
同样的continue也对这个有所效果,可以直接进入下一轮次的循环,都是可以的;
当然了,for循环语句也可以为空,也就是exp123都可以空直接用;隔开就行
二、do while语句
do while的使用比较特别,具体语法如下:
do
{
循环语句;
}while(exp1);
其中的exp1就是循环的判断条件;这个与while不通的地方在于,while是先判断,而do while是先做在判断是否再做一次(循环语句;)的循环;这就是两者的不同之处;
三、作业部分
想了一下还是想找点作业做一下,也能够比较快的上手,在这之中也找回了一些以前的记忆,也算是当时老师教学的时候让我考虑的一些基础的问题叭,这些功能大概要慢慢写了;
首先是作业内容,写了一半才记起来想要记录一下:
作业题目总起
我有习惯把菜单单独分出来所以单独写了一个显示的菜单的函数用来显示,不在main里面让他变复杂了;
键入功能选择
接下去是判断功能的准备,具体是选择哪一个功能呢?在这个部分想到了用户不一定会键入12345这五个数字,然后就发现了问题,会卡住,我也想起来了这个问题要解决的话,需要清空键入区域也就是上面讲的缓冲区的字符,因而我去找了一下,之前学习用的是VC6所以可以用fflush这个函数,不过VS好像不兼容,我就看了后面的解决方案;
scanf("%*[^\n]"); scanf("%*c");
//fflush(stdin);rewind(stdin);
system("cls");
具体的是上面的两行代码,system是清屏代码,然后scanf是用来提取所有的无关字符,也就是清空缓冲区里的字符从而达到可以重新输入而不是反复横跳的bug,这也是因为字符类型不符合引起的原因;这里说一下这个代码的意思吧!
这个scanf中是表明丢弃后面的内容,第一个[^]应该是指遇到\n就停止读取缓冲区,相同的,第二个就是读取其中的\n走,%c是会读取\n的,所以会彻底清空缓冲区,然后下面被注释的代码其实是差不多的功能,就是实现清空缓冲区的功能;
之后就是正常的功能实现,判断字符返回输入的字符,然后进行功能跳转了;·
功能的实现
剩余的部分,我会在后续中慢慢更新,主要是考虑到我想使用动态数组和文件保存的功能,因此后续还是有需要继续学习才能够完成这个部分的任务
总结
其实主要还是要学习不清楚的部分,包括srand函数(unsigned int)的强制类型转化,以及rand函数的使用,最近要抓紧读书了~