选择程序和循环结构

本文详细介绍了C语言中的选择结构,包括if语句、else的使用以及switch语句和default语句。同时,文章讲解了循环语句,如while、for和do...while循环,讨论了break和continue语句在循环中的作用。此外,还提到了goto语句在程序控制流中的应用。
摘要由CSDN通过智能技术生成

目录

语句

分支语句(选择结构)

if语句

else的使用

 if语句练习

switch语句

default语句

循环语句

while语句

while语句中的break语句和continue语句

 for循环语句

for循环中的break和continue

for循环变种

笔试练习题

do...while循环语句

do...while语句中的break和continue

 goto语句


语句

C语言语句分为五类:

1.表达式语句:3+5;

2.函数调用语句:printf("...");

3.控制语句(9种可分为3类):

         1.条件判断语句(分支语句):if语句,switch语句

         2.循环执行语句:do while语句,while语句,for语句

         3.转向语句:break语句,goto语句,continue语句,return语句

4.复合语句

5.空语句:   ;

分支语句(选择结构)

if语句

注:if语句如果表达式结果为真,则执行语句(if语句默认管理后面一条语句)

0表示假,非0表示真

语法结构

if(表达式)                         if(表达式)                                   if(表达式)

   语句;                                    语句;                                          语句;

                                            else                                                 else if(表达式)

                                                  语句;                                          语句;

                                                                                                           .........

                                                                                                     else    

                                                                                                        语句;

include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("未成年");
	return 0;
}
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("未成年");
	else
		printf("成年");
	return 0;
}
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年");
	}
	else if (age >= 18 && age <= 30)
	{
		printf("青年");
	}
	else if (age > 30 && age <= 50)
	{
		printf("中年");
	}
	else
	{
		printf("老年");
	}
	return 0;
}

if语句默认管理后面一条语句,如果需要执行多条语句,应该使用代码块

#include <stdio.h>
int main()
{
	if (表达式)
	{
		多条语句;
	}
	else if (表达式)
	{
		多条语句;
	}
	else
	{
		多条语句;
	}
	return 0;
}

这里的一对{ }就是一个代码块

else的使用

else与离之最近的if匹配

列:这里我们想当a=0且b=2的时候输出haha,否则输出hehe

 输出空值,因为else与if(2==b)这个if配对了,a不等于0这个程序直接结束了

正确代码:

#include <stdio.h>
int main()
{
	int a = 1;
	int b = 2;
	if (0 == a)
	{
		if (2 == b)
		{
			printf("haha\n");		
		}
	}
	else
	{
		printf("hehe\n");
	}
	return 0;
}

 if语句练习

1.判断1个数是否为奇数

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

2.输出1-100之间的奇数

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

switch语句

语法结构

switch(整型表达式)

{

     case 整型常量表达式:语句:

     。。。

    case 整型常量表达式:语句:

}

switch语句无法直接实现分支,需要搭配break才能实现分支

例:输出日期程序(输出星期五)

在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况

添加break语句

 当输入1-5时输出weekday

当输入6,7时间输出weekend

 由switch语句的特点和break语句的用处我们可以写出

 break语句的实际效果是把语句列表划分为不同的分支部分

default语句

如果输入的值与case后的值都不匹配的话,所有的语句都会被跳过,但是程序既不会终止

也不会报错,但是如果你并不想忽略所有标签的表达式的值的时候,可以添加一条default语句(可以出现在case语句能出现的任何位置,每个switch语句中只能出现一条default子句)

循环语句

while语句

语法结构

while(表达式)

     语句;

例:打印0-10这几个数字

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

while语句中的break语句和continue语句

 break:停止后期所有的循环,终止循环

continue:终止本次循环,跳转到下次循环的判断部分

break语句实例

continue语句实例

 光标一直闪烁,当i=5时continue跳过本次循环跳转到下次循环判断处,没有进行i++操作,i一直为5,程序死循环

 for循环语句

语法结构

for(表达式1;表达式2;表达式3)

       语句;

表达式1:初始化

表达式2:判断

表达式3:调整

打印0-10这些数字

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0/*初始化*/; i <= 10/*判断*/; i++/*调整*/)
	{
		printf("%d ", i);
	}
	return 0;
}

for循环中的break和continue

break:停止后期所有的循环,终止循环

continue:终止本次循环,跳转到下次循环的判断部分

for循环变种

省略三个部分,死循环

 省略初始化部分

如果给变量赋初值,程序正常运行,没有初始化,程序错了

 

 省略判断部分,意味着判断部分恒为真

 省略调整部分,死循环

 

 多个for循环嵌套

 使用多个变量控制循环

笔试练习题

#include <stdio.h>
int main()
{
	int i = 0;
	int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++)
	{
		k++;
	}
	return 0;
}

问:该循环循环多少次?

该循环不循环,判断条件为假,不循环(C语言中0为假,非0为真

do...while循环语句

语法结构

do{

语句;

}while(表达式);

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

do  while循环至少执行一次

do...while语句中的break和continue

break:停止后期所有的循环,终止循环

continue:终止本次循环,跳转到下次循环的判断部分

continue和while中的continue一样

 

 

 goto语句

C语言中提供了可以随意滥用的goto语句和标记跳转的标号

可以用在跳出两层循环或多次循环,break只能跳出一层循环

用法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值