大家好啊,今天咱们来好好聊聊C语言里的循环。写程序嘛,总免不了要重复做一些事情,比如算1到100的和,或者打印十行星号,总不能一行行写代码吧?这时候循环就派上大用场了。C语言里常用的循环有三种:for、while和do-while,咱们一个一个说,争取从入门到精通,把它们的用法和嵌套技巧都搞明白。一起往下看吧!
先说说for循环,这应该是咱们用得最多的了。它的结构是for(初始化; 条件; 增量) { 循环体 }。比如咱们想打印1到10的数字,就可以这么写:for(int i=1; i<=10; i++) { printf("%d ", i); }。这里面,初始化就是给变量i赋值1,条件是i小于等于10,增量是i每次加1。执行的时候,先初始化,然后判断条件,满足就执行循环体,执行完了再增量,接着又判断,直到条件不满足为止。是不是很清晰?有朋友可能会问,这三个部分能不能省掉啊?其实是可以的,但新手最好别这么干,容易出问题。比如把条件省了,就成了死循环,程序跑起来停都停不下来。
再来看while循环,它的结构更简单:while(条件) { 循环体 }。它会先判断条件,条件成立就执行循环体,执行完了再回来判断,直到条件不成立。比如咱们想让用户输入一个大于10的数字,没输入对就一直让他输,用while就很方便。int num; while(num <= 10) { scanf("%d", #); }。不过用while的时候要注意,循环体里一定要有能改变条件的语句,不然也容易死循环。就像刚才这个例子,要是忘了写scanf那行,num的值一直不变,就会一直循环下去。
然后是do-while循环,它和while有点像,但顺序反过来了:do { 循环体 } while(条件); 看到没,最后有个分号,可别漏了,很多人刚开始都在这栽跟头。它是先执行一次循环体,再判断条件。也就是说,不管条件怎么样,循环体至少会执行一次。什么时候用呢?比如做一个菜单程序,让用户选择功能,至少要显示一次菜单吧,这时候do-while就很合适。do { 显示菜单; 接收选择; } while(选择不是退出); 这样就算用户一上来就选退出,菜单也显示过了。
接下来聊聊循环嵌套,就是一个循环里面再放一个循环。这在处理二维数组啊,打印图案的时候特别常用。比如咱们想打印一个5行5列的正方形星号,就可以用外层循环控制行数,内层循环控制每行的星号数。for(int i=0; i<5; i++) { for(int j=0; j<5; j++) { printf("*"); } printf("\n"); }。运行一下,一个整齐的正方形就出来了。不过嵌套的时候要注意,内外循环的变量别重名,不然就乱套了。还有啊,嵌套层数多了代码会变复杂,一般两层就够了,最多别超过三层,不然自己都容易看晕。
有朋友问,循环中间想提前结束或者跳过某次循环怎么办?这就要用到break和continue了。break是直接跳出整个循环,不管后面还有多少次。比如在循环里找一个数,找到了就可以用break结束,不用再找了。continue呢,是跳过本次循环剩下的部分,直接进入下一次。比如打印1到10,但不打印5,就可以在i等于5的时候用continue跳过。这两个关键字用好了,能让循环更灵活,但也别乱用,不然代码逻辑容易乱。
兔子哥当年刚开始学的时候,总搞混while和do-while的区别,写嵌套循环的时候也经常把内外循环的条件弄反。后来多写了几个例子,慢慢就明白了。其实学循环没什么捷径,就是多练。比如用不同的循环实现同一个功能,比较它们的区别;或者试着写一些复杂的嵌套,像打印菱形啊、九九乘法表啊,这些都是很经典的练习。
论坛上有个叫“编程小白”的网友分享说,他之前写for循环的时候,把增量写成i+++,结果程序一直报错,后来才发现是多打了个加号。还有人说,用while循环的时候,忘了给变量初始化,结果条件一开始就不满足,循环一次都没执行,查了半天才找到原因。这些都是新手常犯的错,咱们多注意就行。
总的来说,for循环适合知道循环次数的情况,while和do-while适合根据条件来循环的情况,其中do-while保证至少执行一次。嵌套循环能处理更复杂的问题,但要注意控制好层数和变量。掌握了这些,对付一般的循环问题就没问题了。
好了,今天就跟大家聊这么多,希望能帮到正在学C语言的朋友。有什么疑问或者好的经验,欢迎在下面留言,咱们一起交流进步。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~