C语言初阶【1】分支与循环

从这里开始,就要开始真正进入C语言,深入的学习它

内容概述

1.分支语句

1.1 if

1.2 switch

1.3 A? B:C

2.循环语句

2.1 while

2.2 for

2.3 do...while

3.goto语句

1.分支语句(条件判断语句)

1.1 if语句

if语句就是选择型的语句

其局势结构如下

if(//判断语句)
{
//条件成立执行语句
}
else
{
//条件不成立执行语句
}

这是最基础的if语句,在这里面会先进行判断,在选择进去哪个执行框

如果表达式的结果为真,则语句执行。 在C语言中0为假非0为真。

用一段代码来看就是

int a=3,b=4;
if(a+b>1)
{
printf("hei hei\n");
}
else
{
printf("haha\n");
}

在这里,a+b大于1,所以打印haha

if语句还有变形,如

if()
{
}
else if
{
}
else
{
}

这段代码就进行了多重判断

注意:1.if语句里面else会与最近的if匹配

           2.if语句里面如果不加{},则会执行下面的一个语句

这里留两个练习

1. 判断一个数是否为奇数
2. 输出 1-100 之间的奇数
1.2 switch语句
switch语句是多分枝语句
一般我们在做选项的时候会用到
switch语句的基本结构为
switch(//常量表达式)
{
case ://常量表达式
        break;
case ://常量表达式
        break;
case ://常量表达式
        break;
default ://常量表达式
//这里因为default是在最后一行的,所以break可加可不加
}

比如:
输入 1 ,输出星期一
输入 2 ,输出星期二
输入 3 ,输出星期三
输入 4 ,输出星期四
输入 5 ,输出星期五
输入 6 ,输出星期六
输入 7 ,输出星期日
这里如果用if来写的话,进行了大量繁琐,重复的操作,我们就可以用switch来写
如果在case后面不加break的话,语句进去之后一直往下执行,这里是看自己的需求来加的
break 语句 的实际效果是把语句列表划分为不同的分支部分
编程好习惯
在最后一个 case 语句的后面加上一条 break 语句。
(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break 语句)
default语句在这个结构中起到的作用是switch接收值和所有的case都不符合的话,就进入default,这里可以用来给用户纠错
注意:default可放在switch语句中的任何位置,但是一个switch语句里面只能出现依次default
1.3 A? B:C
这个三目运算符我们在前面提到过,其实这个A?B : C就是简化版的if语句,它对应的if语句是
if(A)
{
B;
}
else

{
C;
}
用法和注意事项都和if语句一摸一样
2循环语句
2.1 while循环
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C 语言中给我们引入了: while 语句,可以实现循环。
while循环的结构是:
while(//循环判断语句)
{
执行语句

}

执行的结构图如下: 

 我们想在屏幕上打印1-10,就不用一个数字一个数字的打印了,就可以用循环来打印

int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;

 }
 return 0; }

讲过了while的基础语句,再来讨论下break和continue语句在while中的运用

2.1.1break在while循环的运用

break语句是终止的意思,在前面switch语句中我们也见识过,它的作用用一段代码来看

int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
if(i==5)
break;
 }
 return 0; }

在这段代码里面,就不会打印1-10了,就会打印1-5,就通过break跳出了

2.1.2continue语句在while循环中的运用

continue语句在while循环中,作用结束是本次循环,看一段代码

        


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

这里会打印1 2 3  4 5 5 5 5 5 5 5死循环,因为continue的作用是结束本次循环,i++就没有执行,所以传刀上面的i还是5,就会一直打印5

2.2for循环

for循环的机理和while循环差不多,只不过是集中在一行写了

其结构如下

for(/*表达式1*/;/*判断表达式*/;/*修正表达式*/)
{
//执行语句
}

表达式一可以空着,也可以对变量进行初始化,分号后面是的判断表达式可以理解为while循环括号里面的东西修正表达式就是防止程序进入死循环的,让循环跑起来的语句

用for来写打印1-10就是

int main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d",i);
}
return 0;
}

可以看出来,代码行数明显比while少了很多

2.2.1break在for循环中的运用

break在for循环中的运用和while没有任何区别,可以参考while循环

2.2.2continue在for循环中的运用

continue在for循环中的运用和while循环就有区别了,

还是看一段代码


int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;
 printf("%d ",i);
 }
 return 0; }

这段代码和上面while循环的代码很相似,他也是打印12345555..吗?

不是,在for循环中,continue结束本次循环之后,还是会执行修正语句,所以打印的应该是1 2 3 4 6 7 8 9 10,就这一点微妙的区别

2.3do...while语句

do...while语句和while语句比较相似,但是他会先执行依次循环

其结构如下

do
{
//循环体
}while(//判断语句)

他的执行流程如下

 

特点是:循环至少执行一次,使用的场景有限,所以不是经常使用。  

do...while中continue和break的使用可以参照while语句,一摸一样

这就是循环和分支的介绍,后面我还会出一期猜数字游戏的介绍,也是运用循环和分支来完成的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值