二.分支语句和循环语句(1)

前一章讲的是初识C语言部分,由于是“初识”,所以相关讲解都不算详细,只是简单的介绍一遍C语言所包含的大部分内容。从这一章开始,后面的内容会逐渐深入,而本章讲的是“分支语句和循环语句”。话不多说,正文开始!


1.分支语句和循环语句

分支语句:if,switch

循环语句:while,for,do while

goto语句

C语言中由一个分号(;)隔开的就是一条语句

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

2.分支语句(选择语句)

  • if

  • switch

-- -- -- -- -- -- -- -- -- --

if语句

语法结构1:

if(表达式)

语句1;

如果表达式1计算结果为真,则执行语句1,否则什么都不执行

-- -- -- -- -- -- -- -- -- --

语法结构2:

if(表达式)

语句1;

else

语句2;

如果表达式计算结果为真,则执行语句1,否则执行语句2

-- -- -- -- -- -- -- -- -- --

语法结构3:

(多分支)

if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;

...

else

语句N

如果表达式1成立,则执行语句1,否则判断表达式2;如果表达式2成立,则执行语句2,否则判断表达式3;。。。否则执行语句N(只能执行一条语句)

-- -- -- -- -- -- -- -- -- --

示例


#include <stdio.h>
int main()
{
    int age = 19;
    if (age < 18)
        printf("未成年\n");
    else if (age >= 18 && age <= 28)//&&可以解读成”并且“
        printf("青年\n");
    else
        printf("成人\n");
    return 0;
}

运行结果:青年

-- -- -- -- -- -- -- -- -- --

如果条件成立,要执行多条语句,应该使用代码块


int main()
{
if(表达式)
  {
   语句1;
   语句2;
  }
else
  {
   语句3;
   语句4;
  }
return 0;
}

这里一对大括号({})就是一对代码块

-- -- -- -- -- -- -- -- -- --

悬空else


#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;
}

运行结果:什么都不输出

else会与离他最近的未匹配的if配对,所以这串代码在判断a==1为假时后面的都不会再执行

-- -- -- -- -- -- -- -- -- --

输出1~100的奇数


#include <stdio.h>
int main()
{
int i = 0;
while(i<100)
  {
   if(i%2!=0)//i+=2;也可以
     printf("%d ",i);
   i++;
}
return 0;
}

运行结果:1 3 5 7 9 11 13 ... 97 99

-- -- -- -- -- -- -- -- -- -- -- -- -- -- --

switch语句

语法结构:

switch(整形表达式)

{

语句项;

}

-- -- -- -- -- -- -- -- -- --

在switch语句中的break用来实现分支


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
 {
  case 1://注意这里是冒号
   printf("星期1\n");
   break;
  case 2:
   printf("星期2\n");
   break;
 }
return 0;
}

运行结果:

输入1

打印:星期1

-- -- -- -- -- -- -- -- -- --

break有时也可以省略


#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1://没有遇到break就是继续执行后面的case,直到遇见break才跳出switch语句
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("输入错误\n");
	}
	return 0;
}

运行结果:

若输入1—5:打印“工作日”

若输入6—7:打印“休息日”

若输入其他数字:打印“输入错误”

-- -- -- -- -- -- -- -- -- --

default子句

当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以每个switch语句只能出现一条default子句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世长老

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值