4分支和跳转

目录

目录

1if语句

2 if else语句

2.1基础用法

2.2嵌套if

3swich语句

4while循环

5for循环

6 do while循环

7break语句

8continue语句

9goto语句


可以这么说,当一个人自律且努力,舍得对自己使出霹雳手段时,往往就要开始变得优秀了。(from 《认知进化》)

1if语句

语法

if ( expression )

        statement

如果表达式为真执行语句,为假不执行。statement部分可以是一条简单语句,或者是一条用花括号括起来的复合语句,执行的是简单语句或者花括号内的所有语句。

2 if else语句

2.1基础用法

语法格式

if ( expression )

        statement1

else

        statement2

判断一个数是奇数还是偶数,代码如下

#include <stdio.h>
int main(void)
{
  int a=5 ;
  scanf("%d", &a);
  if (a % 2 == 1)
    printf("a为奇数");
  else
    printf("a为偶数");
  return 0;
}

if语句用于选择是否执行一个行为,而else if语句用于在两个行为之间选择。

2.2嵌套if

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。如果有多个 if 和 else , else 总是跟最接近的 if 匹配。

编写程序,实现用户输入成绩,然后输出成绩等级,A表示90分以上,B表示80到90分,C表示70到80分,D表示60到70分,E表示60分以下。输入对应的字母,则输出对应的成绩表示内容。

#include <stdio.h>
int main(void)
{
  int score=0 ;
  scanf("%d", &score);
  if (score>=90)
    printf("成绩等级为A\n");
  else if (score>=80)
    printf("成绩等级为B\n");
  else if (score>=70)
    printf("成绩等级为C\n");
  else if (score>=60)
    printf("成绩等级为D");
  else
    printf("成绩等级为E");
  return 0;
}

3swich语句

除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。

switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。

语法: 

switch (expression)

{       case value 1:

        satement

        case value 2:satement

        default:statement

}

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分⽀。如果找不到对应的值,就执行 default 分支。case 是入口,需要添加break作为出口跳出语句,否则会执行多个入口的语句。

switch 后的 expression 必须是整型表达式, case 后的值,必须是整形常量表达式。

判断是星期几,代码如下:

#include <stdio.h>
int main(void)
{
  int day = 0;
  scanf("%d", &day);
    switch (day)
    {
    case 1:
            printf("今天是星期一\n");
            break;
    case 2:
         printf("今天是星期二\n");
         break; 
    case 3:
         printf("今天是星期三\n");
         break;
    case 4:
         printf("今天是星期四\n");
         break;
    case 5:
         printf("今天是星期五\n");
         break;
    case 6:
         printf("今天是星期六\n");
         break;
    case 7:
         printf("今天是星期天\n");
         break;
    default:
         printf("输入错误\n");
         break;
    }   
  return 0;
}

​当多个入口的出口一致时,可以使用同一个break。

#include <stdio.h>
int main(void)
{
  int day = 0;
  scanf("%d", &day);
    switch (day)
    {
    case 1:
    case 2:     
    case 3:
    case 4:
    case 5:
         printf("今天是工作日\n");
         break;
    case 6:
    case 7:
         printf("今天是休息日\n");
         break;
    default:
         printf("输入错误\n");
         break;
    }   
  return 0;
}

4while循环

语法:

while ( expression )

         statement

while语句的结构和if语句很相似,它们的主要区别是:如果满足条件可执行的话,if语句只能测试和执行一次,而while语句可以测试和执行多次。

从1加到100

#include <stdio.h>
int main(void)
{
  int i = 0;
  int sum = 0;
  while (i <= 100)
  {
    sum += i;
    i++;
  }
  printf("%d", sum);
  return 0;
}
​

5for循环

语法

for ( initialize; test; update )

        statement

initialize ⽤于循环变量的初始化(表达式1)

test ⽤于循环结束条件的判断(表达式2)

update ⽤于循环变量的调整(表达式3)

⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果不满足,则循环结束; 表达式2 的结果如果满足则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后执行判断表达式2 , 表达式2 的结果是否为真,决定循环是否继续。整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。

从一加到一百

#include <stdio.h>
int main(void)
{
  int sum = 0;
  for (int i = 0; i <= 100; i++)
  {
    sum += i;
  }
  printf("%d", sum);
  return 0;
}

6 do while循环

语法

do

        statement

while ( expression );

statement可以是一条简单语句或复合语句。注意,do while循环以分号结尾。

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环;⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

#include <stdio.h>
int main(void)
{
  int sum = 0;
  int i = 0;
  do {
    sum += i;
    i++;
  } 
  while (i <= 100);
  printf("%d\n", sum);
  return 0;
}

7break语句

程序执行到循环中的break语句时,会终止包含它的循环,并继续执行下一阶段。

#include <stdio.h>
int main(void)
{
    for (int i = 0; i < 10; i++)
    {
    if (i == 7)
      break;
          printf("%d ", i);
  }
  return 0;
}

8continue语句

3种循环都可以使用continue语句。执行到该语句时,会跳过本次迭代的剩余部分,看是否符合循环执行条件从而开始下一轮迭代。如果continue语句在嵌套循环内,则只会影响包含该语句的内层循环。

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

9goto语句

语法格式

goto label ;

...

...

...

label : statement

goto语句使程序控制跳转至相应标签语句。冒号用于分隔标签和标签语句。标签名遵循变量命名规则。标签语句可以出现在goto的前面或后面。goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以建议能不⽤尽量不去使⽤;但是 goto 语句跳出多层循环的代码非常方便。

#include <stdio.h>
int main(void)
{
  printf("你不说真心话\n");
  goto next;
  printf("让我怎么为你大冒险");
next:
  printf("跳过大冒险\n");
}

                
  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值