C语言条件语句及循环语句
发布日期:2021-10-16 10:03:56 浏览次数:8 分类:技术文章

本文共 3085 字,大约阅读时间需要 10 分钟。

C语言语句

1、分支语句 有两种,第一种是负责实现双分支的if语句,另一种是负责实现多分支的开关语句switch。

1.1 if语句

(1)只有一个分支

if(条件表达式){

    语句块             // 条件表达式成立 (即值为true)时执行该语句块
}

例子:

int a;
 
a = 0;
 
// 如果a等于0时执行大括号中的语句。否则不执行。
//由于上面的语句把a的值改为0了,现在条件表达式“a=0”是成立的,所以a=a+1会被执行。
if(a = 0){
    a = a + 1;
}

 

(2)有两个分支

if(条件表达式){
    语句块1            // 条件表达式成立(即值为true)时执行语句块1
}
else{
    语句块2            // 条件表达式不成立时执行语句块2
}

例子:

int a;
 
a = 0;
 
if(a < 0){
    a = a + 1;             // a小于0时执行
}else{
    a = a - 1;             // a不小于0(即a大于等于0)时执行
}

(3)有多个分支(类似switch语句)

if(条件表达式1){
    语句块1            // 条件表达式1成立(即值为true)时执行语句块1
}
else if(条件表达式2){
    语句块2            // 条件表达式2成立时执行语句块2
}
else if(条件表达式3){
    语句块3            // 条件表达式3成立时执行语句块3
}
...
else{
    语句块n            // 以上条件表达式全部不成立时执行语句块n
}

例子:

int a;
int b;
 
a = 3;
b = 9;  
if(a = 3){
    a = a + 1;             // a = 3时执行
}else if(b = 9){
    b = b + 1;             // b = 9时执行
if(a > 3 || b > 9){
    a = a - 1;              // a>3或者b>9 时执行 
    b = b - 1;
}else{
    a = 0;                   // 以上条件都不满足时执行 
    b = 0;

1.2 switch语句

switch(表达式){
    case 表达式1:
        语句块1           // 表达式的值等于表达式1 则执行语句块1
        break; 
    case 表达式2:
        语句块2           // 表达式的值等于表达式2 则执行语句块2
        break; 
        ...   
     case 表达式n:
        语句块n           // 表达式的值等于表达式n 则执行语句块n
        break;    
    defualt:
        语句块n           // 表达式的值不等于以上所有的表达式 ,则执行defualt(默认)语句块n
}

表达式n的类型应与表达式值的类型一致,可以是整形或字符型。假设已定义“int a;”整形变量a,那么表达式“a”、“a+4 ”、“a*(a+4)”等的值都为整形数,这时表达式就应该用整形数。

例子1:

int a = 3; 

switch(a-2){
    // 当a-2=1时执行“case 1”下的语句。
    case 1:
        a = a+1;
        break;   
    // 当a-2=2时执行“case 2”下的语句。
    case 2:
        a = a+2;
        break; 
    // 如果上述情况都不满足,则执行“defualt”下的语句。
    defualt:
        a = a+3;
}

注意:每个case语句块后面的“break;”语句的意思是跳出switch语句,若没有“break;”语句则程序会继续执行下去。例如,若去掉“case 1”末尾的“break;”语句,那么程序在执行完语句“a = a+1;”后,程序将继续执行“case 2”里的语句“a = a+2;”;若“case 2”末尾也没有“break;”语句,那么“default”里的语句也将被执行。

例子2:

char ch=getcher();

swich(ch)

{case 'a':printf("test10000");break;

case '8':printf("test100231")break:

case 'b':printf("test20000");break;

case '...' :    .............;break;

可以是键盘中输入某个字符作为判断条件。

2、循环语句

2.1 do...while语句

do{
    循环体
}while(循环条件表达式);

首先“循环体”被执行一次,然后判断“循环条件表达式”是否为真;“循环条件表达式”为假则循环结束;若“循环条件表达式”为真则再次执行“循环体”接着再次判断“循环条件表达式”是否为真...如此循环执行直到“循环条件表达式”为假才结束循环。

do...while语句的特点是无论“循环条件表达式”值的真或假,“循环体”至少被执行一次。

例子:

int i = 0;
 
do{
    i = i + 1;
}while( i < 10 );

语句 “i = i + 1;” 被循环执行10次后i的值为10,这时”循环条件表达式“ ”i < 10“ 不再为真,循环结束。

2.2 while语句(循环时变量不会递增,不会像for一样有i++)

while(循环条件表达式){
    循环体 
}

首先判断 “循环条件表达式” 是否为真,假则结束循环;若 “循环条件表达式” 为真则执行 “循环体” 接着再次判断 “循环条件表达式” 是否为真...如此循环执行直到 “循环条件表达式” 为假才结束循环。

while语句与do...while语句的不同点是,除非“循环条件表达式”为值,否则不会执行“循环体”。

例子:

int i = 0;
 
while( i < 10 ){
    i = i + 1;
}

语句 “i = i + 1;” 将被被循环执行10次。

2.3 for语句

for(表达式1; 循环条件表达式; 表达式2){
    循环体
}

for循环体语句比较复杂同时也是最灵活的循环语句。for语句的执行顺序是:

(a) 执行 “表达式1”

(b) 判断 “循环条件表达式” 是否为真,不为真则跳到步骤(e)

(c) 执行 “循环体”

(d) 执行 “表达式2”,跳到步骤(b)

(e) 循环结束

例子:

int i = 10;
int n = 0;
 
for( i=1; i<=10; i=i+1){
    n = n * i;
}

2.4 循环控制语句

在任何循环语句的循环体中都可以使用 “continue;” 和 “break;” 语句对循环进行相关控制。

(1) “continue;” 语句

该语句的作用是放弃本次循环,并马上进入下一次循环。

把 2.3 的例子修改如下:

int i = 10;
int n = 0;
 
for( i=1; i<=10; i=i+1){ 
    if( i == 5 ) 
        continue; 
    n = n * i;
}

这段程序最终算得n为1~4,6~10这9个数的乘积。因为第5次循环(即i=5)时执行了 “continue” 语句,导致这次循环被放弃,进而 "continue" 下面的 “n = n * i;” 语句没被执行到。

(2) “break;” 语句

该语句的作用是结束整个循环。

把 2.3 的例子修改如下:

int i = 10;
int n = 0;
 
for( i=1; i<=10; i=i+1){ 
    if( i == 5 ) 
        break; 
    n = n * i;
}

这段程序最终算得n为1~4这4个数的乘积。因为第5次循环(即i=5 )时执行了 “break” 语句,导致整个循环被结束,进而第6次、第7次...第10次循环都不会被执行了。

转载地址:https://blog.csdn.net/sman19999/article/details/106485640 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C语言函数
下一篇:OBS显示器捕获黑屏解决办法

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月26日 05时10分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql文件系统_MySQL文件系统先睹为快(1) 2019-04-21
nums在python_程序找到一对(i,j),其中nums [i] + nums [j] +(i -j)在Python中最大化?... 2019-04-21
jquery后台内容管理_教育平台项目后台管理系统:课程内容模块 2019-04-21
grouping函数 mysql_sql聚合函数有哪些 2019-04-21
python os.walk如何不遍历隐藏文件_python 获取文件下所有文件或目录os.walk()的实例... 2019-04-21
python 股票估值_【中金固收·固收+】隐藏价值的角落:限售股AAP估值及Python实现方法(上)... 2019-04-21
java文档生成_Java文档自动生成 2019-04-21
java 共享目录_java 操作windows 共享目录方法介绍 2019-04-21
java 监控 宕机_JAVA监测tomcat是否宕机,控制重启 2019-04-21
catch that cow java_POJ3278——Catch That Cow 2019-04-21
java integer 不变模式_Java代码的变与不变 2019-04-21
java guava 使用_Java8-Guava实战示例 2019-04-21
python barrier option pricing_《Python金融数据分析》书内代码实战与讲解(二)金融衍生物定价... 2019-04-21
java自带工具_深入了解Java JDK自带工具,包括javac、jar、jstack等,实用~ 2019-04-21
gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享 2019-04-21
java线程占用CPU_在windows下揪出java程序占用cpu很高的线程并完美解决 2019-04-21
java多态替换switch_使多态性无法解决那些switch / case语句的麻烦 2019-04-21
java httpclient 进度条_如何使用Apache HttpClient 4获取文件上传的进度条? 2019-04-21
下列不属于java语言特点的是_下列选项中,不属于Java语言特点的一项是( )。... 2019-04-21
java中小数的乘法_javascript的小数点乘法除法实例 2019-04-21