C语言入门之分支和循环

C语言是一门结构化的程序设计语言。

什么是语句?

C语言中由一个分号;隔开的就是一条语句。例如:
printf("Hello");
1+2;

顺序结构

选择结构(分支语句)

if语句

语法结构:

if(表达式)
    语句;
    
if(表达式)
    语句1;
else
    语句2;
//多分支
if(表达式)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

//如果条件成立,要执行多条语句,该怎样使用代码块?
if(表达式){
    语句1;
    语句2;
}else{
    语句3;
    语句4;
}

年龄判断

while (1) {

    int age = 0;
    printf("请输入年龄:\n");
    scanf("%d", &age);
    if (age <= 18)
        printf("未成年\n");
    else if (age <= 35)
        printf("青年\n");
    else if (age <= 55)
        printf("中老年\n");
    else
        printf("老年\n");
}

注意:

int age = 10;
if (18< age <= 35)
    printf("青年\n");

程序输出结果:

青年

程序结果分析:

程序执行到18 < age <= 35 时先执行18<age,此时age=10,所以18<10的结果为0,而0 <= 35,所以输出了青年在C语言中,0表示假,非0表示真

注意事项:

if else语句在没有大括号的情况下,else的匹配原则是就近匹配if.

int a = 1;
int b = 2;
if (a == 0)
   if (b == 2)
       printf("进入内层if");
else
    printf("外层else");

程序输出结果:在这里插入图片描述

int a = 1;
if (a = 2) {
	printf("输出咯");
}

程序输出结果

输出咯

程序结果分析:

需要注意,在C语言中,0为false,true为非0,=是赋值操作,不是判断操作,此时num=5也就是:

int num = 4;
if(5){
   printf("输出咯")
}

switch语句

switch(整型表达式){
	语句项;
}

何为语句项:

case 整型常量表达式:
    语句;
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("无效日期");
}
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("无效日期");
}

   return 0;

注意:defaultcase的顺序并没有限制

int day = 0;
scanf("%d", &day);
switch (day){
	default:
		printf("无效日期");
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("周末啦\n");
		break;

}

循环结构

while语句

while(表达式)
	循环语句;
int num = 0;
while (num < 10)
{
	printf("%d", num++);
	if (num == 5) {
		break;
	}
}
int num = 0;
while (num != EOF){
	num = getchar();
	putchar(num);
}

   return 0;

EOF:end of file:文件结束标志,值为-1,等同键盘输入Ctrl + Z

for语句

for(表达式1;表达式2;表达式3)
    循环语句;

表达式1初始化部分,用于初始化循环变量的。表达式2条件判断部分,用于判断循环时候终止。表达式3调整部分,用于循环条件的调整。

for语句的循环控制变量

一些建议:

  • 1.不可在for循环内修改循环变量,防止for循环失去控制。

  • 2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

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

特殊的for循环

for (;;) {
    printf("哈哈哈哈");
}
  • for循环的初始化、调整、判断都可以省略,但是:for循环的判断部分被省略,那判断条件就是恒为真
  • 如果不是非常熟练,建议不要随意省略;
int i = 0;
int j = 0;
for (; i < 10; i++) {
    for (; j < 10; j++) {
        printf("瓜皮");
    }
}

代码分析:

现有需求是i每循环一次,j就要循环10次。但是当初始化条件省略后,i执行第一次,j为10,i进入下一次循环,但是此时因为j省略了初始化,导致j为10,从而无法进入j循环的方法体。

循环将会执行几次

 int i = 0;
 int j = 0;
 for (i = 0,j = 0;  j = 0; i++,j++) {
     j++;
 }

do while语句

do
    循环语句;
while(表达式);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值