探索C语言星球的第三站:选择结构与循环结构

嗨害嗨,我又来了欧,C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,今天要带大家认识的就是 选择结构。话不多说让我们开始吧!

选择结构

单分支语句:if

if 语句
if ( 表达式 )
{
    语句
}

我们可以把if语句看做如果,如果表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏,在c语言里0表示真,非0表示假

多分支语句:if...else、 if...else if...else 、switch 

  if...else 语句
if(表达式){
    语句1
}
else{
    语句2
}

如果if表达式为假(非0),那就执行else的语句,我们举个小栗子:如果我不是女生,那就是男生、如果我大于等于18岁,就是成年人了,否则就是未成年人

if(age>=18)
 printf("成年\n");
 else
 printf("未成年\n");
tips::if和else都默认控制一条语句,如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来,else 后也可以跟上⼤括号。如下:
if(age>=18)
{
 printf("成年\n");
 printf("成年可以恋爱了\n")
}
 else
{
 printf("未成年\n");
 printf("未成年不能谈恋爱哦\n");
}
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

 if...else if...else语句:

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断,那就让我们通过一个判断分数的 小栗子来了解一下


if(score>=0 && score<60)
    printf("不及格");
else if(score>=60 && scorescore<=100)
    printf("及格");
else
    printf("您输入的成绩有误");

switch 语句

        除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构,switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式,格式如下:
switch(a)
{
   case 1:
      printf("我是1");
      break;
   case 2:
      printf("我是2");
      break;
   default:
       printf("输入错误");
       break;
}
上⾯代码中,根据表达式 a 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。
注:
  •  switch 后的 a 必须是整型表达式
  •  case 后的值,必须是整形常量表达式
switch语句中的case和default的顺序问题:
 在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?
      其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以。不过我们通常是把 default放最后处理的

循环结构

1.while 语句

格式:

while(循环控制表达式)
{
  语句;
}
语句n;

满足循环控制表达式的时候会执行while控制的语句,不满足循环控制表达式时,执行语句n。

注:

注意规避死循环,一定要设置循环出口

循环条件往往要赋初值

eg.

#include <stdio.h>
main()
{
  int choice=1;//赋初值
  while(choice!=0)//"!="为“不等于”,注意没有分号
  {
    printf("还在循环中\n");//“\n”表示换行
    scanf("%d",&choice);
  }
  printf("已跳出循环\n");
}

当输入的choice值为0时,会跳出循环,否则将一直都在while循环体内。

2.do- while语句

格式:

do
{
  语句;
}while(循环控制表达式);//注意有分号!
​
语句n;

与while循环类似,区别是会先执行一遍循环体内容。

注:

  1. while()后有分号!
  2. 其余需要注意的点与while循环相同
  3. 不管条件是否成立,至少都会执行一次

3.for语句

格式:

for(表达式1;表达式2;表达式3)
{
  语句;
}
语句n;

表达式1:赋初值

表达式2:循环控制表达式

表达式3:控制循环变量表达式

下面先来举个例子

#include<stdio.h>
main()
{
  int i;
  for(i=1;i<=10;i++)
  {
    printf("%d",i);
  }
}

通过i值的输出,我们可以看到循环执行了10次

tips:

  1. 循环变量(此处i为循环变量)需要定义
  2. for的括号内必有两个分号(即三条表达式),但是可以是空语句,
    类似for(;;)并不会报错

4.辅助控制语句

(break 和 continue)

break跳出循环体,执行循环体外语句
continue跳过本次循环,进入下次循环

用例子进行阐明:

for语句(break)

#include<stdio.h>
main()
{
  int i;
  for(i=1;i<=10;i++)
  {
    printf("%d\n",i);
    break;
  }
}

for语句(continue)

#include<stdio.h>
main()
{
  int i;
  for(i=1;i<=10;i++)
  {
    printf("%d\n",i);
    continue;
  }
}


while语句(break)

#include<stdio.h>
main()
{
  int i=1;
  while(i<=10)
  {
    printf("%d\n",i);
    i++;
    break;
  }
}

while语句(continue)

#include<stdio.h>
main()
{
  int i=1;
  while(i<=10)
  {
    printf("%d\n",i);
    i++;
    continue;
    printf("标志符\n");
  }
}

可以看到执行while语句(break)中,循环只执行了一次便退出循环;

执行while语句(continue)中,循环执行了10次,但是printf("标志符\n");未被执行,说明continue之后的语句被跳过,直接进入了下一个循环

tips:

break 和 continue 语句非常重要,通常与循环体一起出现,并且很有意思。

好啦这期的分享的C语言基础知识就就到这里,如有遗漏或写得不好的请大家多多包涵啦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值