大家好!今天为大家带来的是有关分支与循环语句的相关内容,希望对您有所帮助。
正文如下:
众所周知,c语言是结构化的程序设计语言,其中的结构化就体现在对于三大基本结构的多元化使用,而这三大结构分别是:顺序结构,选择结构,循环结构
通过对三大结构的学习,我们就可以掌握c语言程序的简单编写了!
我们可以通过if...else 和switch 来进行我们的选择
for,while和do...while来帮助我们进行循环执行我们的代码
1,if语句
1.1if
if在英语中就是如果的意思,我们可以通过它进行我们的选择
if的语法为:if(条件){...}
对于条件,判断的是这个条件的真与假,如果是真,就执行大括号内的内容,如果是假,就跳过该语句。
对于假的概念,在计算机中,只要是 0就是假
#include<stdio.h>
int main()
{
int n = 0;
if(n == 1)
{
printf("你爱我");
}
return 0;
}
如上一般,n是0 它不是1,条件为假,所以你爱我是不会输出的。
1.2else
当我们在选择东西的时候,不要这个了,但是我们想要另一个,我们会选择else
else的语法为:if(){};else{}
就是很显然的在if后面加上else就行了
当我们有多个选项时我们就可以这样写了
if(条件1){...}
else if(条件2){...}
else if(条件...){...}
else{...}
这样就可以方便我们的选择了,当然最后一个else可以不要,如果要就代表它包含的条件是除了之前条件之外的条件了,使用时应当小心。
应当注意的是:在if(条件)+语句;这种写法也是可以的,不加大括号时,只能填入一条语句,超出就会离开if的作用范围了,就会出现错误。
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d",&age);
if(age < 18)
printf("未成年,不准谈恋爱!");
else
printf("已成年,可以谈恋爱!");
return 0;
}
如上一般,当只有一条语句时,可以不加大括号
1.3悬空else问题
如果有多个if和else时,我们要记住:else总是跟最近的if匹配。
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
如上代码,很多人刚开始来就会出现错误的认识:a等于0,不等于1,就执行else语句,打印haha在屏幕上面,但是这个代码却什么都没有打印出来。
究其原因是因为我上来就将第一个If和else对齐,让人误解了,实际else是与第二个if对齐的,当第一个a是否等于1条件判断为假后,就不执行里面的内容了。
当代码写成下面这种形式时就可以很方便的看出来问题了:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
只要带上适当的大括号,代码的逻辑就会更加的清晰,所以大家以后在写代码的时候要注意括号的使用,让代码的可读性更高。
2,switch语句
除了if语句以外,c语言还提供了,switch语句来实现我们的选择
switch是一种特殊的if...else语句,但是更加的简洁明了。
语法如下:
switch(整型表达式)
{
case 整型常量表达式 :
语句1;
break;
case 整型常量表达式 :
语句2;
break;
......
defaut:
语句end;
}
如上,当其他选项都不执行时就会执行default语句
每一个case语句执行完后,都需要加上一个break;跳出switch语句
如果不加就会将后面其他的语句也一并执行了。
我们的每一个case与后面的整型常量表达式中间都需要一个空格,整型常量表达式之后需要加上:
#include<stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
switch (ch)
{
case 'a':
printf("A");
break;
case 'b':
printf("B");
break;
case 'c':
printf("C");
break;
default:
printf("NO");
break;
}
return 0;
}
还有一点需要注意的是,对于字符类型是归类到整型家族的,所以这个整型常量表达式可以写成符号的形式。
default的使用;
当我们选项中的值无法与其他选项匹配时,就执行我们的deault语句
对于其中default和case的顺序问题:
在一般情况中,default是放在case之后的,但是放在前面也是没有问题的,只要符合你的代码逻辑
3,while循环
c语言提供了三种循环语句,while是其中的一种,它的使用与if相似
语法如下:
while(条件){...}
不得不提的就是,我们在写代码的时候一定要避免死循环的发生,简单一点的就是不要使我们条件没机会变成假(0)
与if相似的是,当我们只有一条语句去执行时,我们可以不加大括号
当有多条语句去执行时,我们就需要加入大括号了
我们写个小代码来看看和if之间的差别吧:
#include <stdio.h>
int main()
{
if(1)
printf("hehe\n");
//if后边条件满⾜,打印⼀次hehe
return 0;
}
#include<stdio.h>
int main()
{
while(1)
printf("hehe\n");
//条件成立死循环的打印hehe
return 0;
}
所以他两是很相似的,但是while可以进行多次的循环操作这个代码
例:循环打印1~10的数
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
这样我们就通过一个简单的代码实现了循环的打印1~10的数字
4,for循环
for也是一种循环,是我们平时使用的最多的一种循环
语法如下:
for(表达式1; 表达式2; 表达式3){...}
表达式1:用于循环变量的初始化
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
关于这几个表达式执行的顺序是:
首先由我们的表达式1开始执行,将循环变量初始化后,判断循环条件是否为真,为真就执行大括号内的语句,执行完大括号内的语句之后就执行表达式三,对循环变量进行调整。准备下一次的循环,之后的循环就不在执行表达式1了,直接判断循环条件,进行语句的执行。
for的简单使用:
#include<stdio.h>
//打印1~10的数字
int main()
{
int i = 0;
for(i = 1; i <= 10; i++)
{
printf("%d ",i);
}
return 0;
}
如上,跟while循环来比较是很相似的,但是for循环,更加的方便,它将定义,条件,调整几个都写在了一起,使用更加方便
5,do...while循环
do...while循环是跟while 循环差不多的,区别在于do...while循环会先去执行一次语句,再进行循环的判定,可以有助于某些特定情况下的处理。
语法如下:
do{...}while(条件);
#include<stdio.h>
//打印1~10的数
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}while(i <= 10)
return 0;
}
如上便是do...while循环的简单使用
6,break和continue关键字
在循环过程中,如果遇见某种特殊要求,需要停止循环时,我们就会使用到break与continue关键字
break:break是一种永久的终止循环,当遇到break时就会不在执行循环里面break之后的语句,跳出循环,执行循环之后的语句
continue:continue的作用是跳过本次循环之后的语句,进行下次的循环,在for循环和while循环中,使用有所差异
1,break举例:
#include<stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if(i == 5)
break;
printf("%d ", i);
i++
}
return 0;
}
如上代码,当执行到i等于5时满足if条件执行break关键词,跳出while循环,停止打印,而且可以发现5也没有被打印出来,所以break会跳过之后的语句。
2,continue举例:
continue是继续的意思,在循环中的作用就是跳过该次循环之后的语句,继续之后的循环
那如果将上面的代码换成continue会怎么样呢?
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d ", i);
i++;
}
return 0;
}
不难发现,光标一直在动,程序一直在执行之中,导致了死循环
为什么呢?
实际上,当continue执行后,后面的i++就没有执行,导致i一直就是5,致使死循环的发生了
可以得出结论是循环的调整如果在continue之后,就可能造成死循环的发生,平时要注意!
2,for循环之中的break和continue
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
跟上面在while中类似
如果改成continue会怎么样呢?
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
我们会发现出现了不同!!!
为什么会和while不同呢?
我们发现for循环循环变量的调整是在前面写在一起的,所以continue不会影响到循环变量的调整。
在do...while循环中,也是和while一样,读者可以自行尝试。
这就是continue在for循环和while循环中的不同差异了
希望这篇文章能够对您有所帮助!
标签:语句,...,int,else,while,循环,分支 From: https://blog.csdn.net/qiuyunoqy/article/details/143837560