循环与分支(一)

简介: 循环与分支(一)

之前几章都是简单了解c语言从本章节起,将开始正式学习C语言,从基础讲起。

本章的标题叫做循环与分支,我们将在本章介绍循环语句和分支语句。

循环语句有for语句,while语句,do-while语句;分支语句有if-else语句和switch语句。


一:什么是语句


C语言语句可分为以下五大类


1.表达式语句


2.函数调用语句


3.控制语句


4.复合语句


5.空语句


简单来理解,由逗号作为结束标记的就是一个语句。如果逗号前面什么都没有,就是一个空语句。 其他语句就不用多介绍了。本章重点在于控制语句。


控制语句分三种。1:一条路走到黑没有其他选择的叫做顺序结构;2:有多种选择的叫做选择结构;3:走到最后又回到开始的(比如一个圆)叫做循环结构。顺序结构,我们vs IED在读取代码时就是按顺序去读取。


可分成以下三类:

1. 条件判断语句也叫分支语句: if 语句、 switch 语句;

2. 循环执行语句: do while 语句、 while 语句、 for 语句;

3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。


二:分支语句(选择结构)


选择很好理解,从小到大所做的选择题就是一种选择至少需要两个还可以多至无限个。


2.1  if语句


if-else 最简单的语句,if-else允许嵌套使用。例如:

int a=5;
if(a>3)
 if(a>=5)
    printf("%d",a);
else
printf("hehe");

在if语句里嵌套了一个if,同理else也可以,if中的if也行,无限套娃。


当然,还是有点小细节需要注意的,我们的else仅跟最近的if,所以在看代码和写代码时需要注意。由于我学了Java更习惯Java的写法,喜欢在各种语句后面加上{ },把代码写在里面,“{ }”叫做代码块,表示这个代码所属于前面的语句,而且不容易出错,如果以后主学c++的不用这门写。


解释一下上述代码,a>3为真则继续进行。那么如何表示真假,由于c缺少了bool值类型,只能用0表示假,非零为真。


适当的使用 {} 可以使代码的逻辑更加清楚,并且代码风格很重要。

代码对比:

//代码1
if (condition) {
    return x; }
return y;
//代码2
if(condition) {
    return x; }
else
{
    return y; }
//代码3
int num = 1;
if(num == 5) {
    printf("hehe\n");
}
//代码4
int num = 1;
if(5 == num) {
    printf("hehe\n");
}


而2和4,个人感觉没什么太大区别,对习惯Java的人来说if后面接" { " 没问题,因为Java中虚拟机写出来就是这样的。习惯了c++的可能受不了代码4 。


if-else很好用,也很简单,但它不是全能的。例如:


输入 1 ,输出星期一

输入 2 ,输出星期二

输入 3 ,输出星期三

输入 4 ,输出星期四

输入 5 ,输出星期五

输入 6 ,输出星期六

输入 7 ,输出星期日

这显然不好用if-else去嵌套很麻烦。c提供了switch语句。


2.2switch语句

//基础语法:
switch(整型表达式) {
    case1:
        语句项;
    case2:
        语句项:
... 
...
}

用switch回答上面的题目,结果如下:

d9886cf49a2f4e10a2391cd47e85a39c.png


我只想进去case1,不想进入2,3,4... ,所以我们需要break关键字,及时中止语句。

bcdb5d22dcbc45a6bccbb0f287ce5883.png

为了避免某个地方出错,我们建议在写完case之后,写一个break,这也是看要求的,如果要求是1-5都为工作日,6,7为休息日,则需要换一种写法。


12f11f4ef50d4fdf96b28739f92bad43.png

这种写法可以不用一个case对应一个break。


break 语句 的实际效果是把语句列表划分为不同的分支部分。

那么如果遇到条件都不符合的情况怎么办呢, 其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误 ,但如果需要别的要求的话,c提供了default语句,表示其他所有的条件都输出default的子代码。

养成一个编程的好习惯,在每一个switch语句下写一个default语句。


三:循环结构(while)


循环结构分为三种,for循环,while循环,do-while循环;

循环结构简单来说就是重复做某件事。那我们怎么做呢?

C语言中给我们引入了: while 语句,可以实现循环。


while (表达式)

循环语句;



1d1f7a62237a4053b711a70396f8e7a9.png


举例:


//在屏幕上打印1-10的数字。

#include <stdio.h>

int main ()

{

int i = 1 ;

while ( i <= 10 )

{

printf ( "%d " , i );

i = i + 1 ;

}

return 0 ;

}


这里又需要提到break语句和continue语句 。

berak翻译就是打破循环,从c语言的角度来说就是当循环达到某个条件时,跳出循环;而continue翻译就是持续,当循环达到某个条件时跳出某次循环,而非整个循环。

//break 代码实例
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
     if(i == 5)
     break;
     printf("%d ", i);
     i = i+1;
 }
 return 0;
 }


其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 while中的break是用于永久终止循环的。

//continue 代码实例
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
{
     if(i == 5)
     continue;
     printf("%d ", i);
     i = i+1;
}
 return 0; 
}


continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断 。

当然还有for循环和do-while循环,下一篇在了解。

相关文章
|
5月前
|
算法 Unix 数据安全/隐私保护
分支和循环语句2
分支和循环语句2
55 0
|
2月前
|
C语言
关于分支与循环的一些细节
关于分支与循环的一些细节
|
2月前
|
C语言
分支与循环讲解
分支与循环讲解
|
2月前
|
编译器 C语言
语句、分支与循环详解
语句、分支与循环详解
|
4月前
|
程序员 编译器 C语言
分支和循环(一)
分支和循环(一)
|
4月前
|
C语言
分支和循环(二)
分支和循环(二)
|
4月前
|
C语言
分支和循环语句(3)
分支和循环语句(3)
30 0
分支和循环语句(3)
|
5月前
|
C语言
分支和循环(2)
分支和循环(2)
50 3
|
5月前
|
C语言
分支和循环(1)
分支和循环(1)
33 0
|
编译器 C语言
分支与循环(1)
分支与循环(1)
分支与循环(1)