C语言结构语句

本文详细介绍了C语言中的顺序结构、分支结构(包括if-else和switch),以及循环结构(while、for和do-while)。通过实例演示了如何使用这些结构实现各种功能,如比较数值、判断闰年、输出星期等。
摘要由CSDN通过智能技术生成

前言:

C语言是一种结构化的程序设计语言,包含:顺序结构,分支结构和循环结构。

直观来看,流程图分别如下:

目录

1.顺序结构

2.分支结构(选择结构)

1.if···else语句

1.运算符

1.关系运算符

2.逻辑运算符

3.条件运算符

 2.if 语句的两种格式

3.if-else的嵌套

1.输出 a, b, c中最大的数:

2.输出闰年:

2.switch语句

1.switch语句和break语句

1.说明:

2.输出星期

2.swutch语句的嵌套

输出工作日及休息日

3.循环结构

1.while循环语句

1.while循环中的break和continue

2.三位数的逆序打印

3.求S=1+2+3+···+99+100

2.for循环语句

1.循环执行的过程

 2.计算1到100间所有3的倍数的和

3.求S=1+2+3+···+99+100

3.do-while循环

1.do-while循环打印1~10:

2.求S=1+2+3+···+99+100


1.顺序结构

顺序结构构如其名,就是按顺序一行一行按顺序进行编译和链接。

2.分支结构(选择结构)

1.if···else语句

 if 程序会让语句执行以下处理:

判断表达式的值,如果结果为真(非0),则执行相应的语句。

1.运算符

1.关系运算符

注:一般0为假,非0为真,且以上结果类型皆为int

<     //a<b是结果为1,反之为0;
>     //a>b是结果为1,反之为0;
<=    //a<=b是结果为1,反之为0;
>=    //a>=b是结果为1,反之为0;
==    //表示a与b相等;
!=    //表示a与b不等;
2.逻辑运算符
&&    //逻辑与运算符 (两侧都为真,则为真,否则为假)
||    //逻辑或运算符 (至少一侧为真,则为真,否则为假)
!     //逻辑取反运算符 (改变单个表达式真假)
3.条件运算符
a ? b : c    //如果a为真,则结果是b的值,否则为c

 2.if 语句的两种格式

  • if (表达式) 语句
if(表达式)语句
  • if (表达式) 语句        else语句
if(表达式)
{
    语句1;    //没有{}时,执行其后最近的语句
}
else
{
    语句2;    //没有{}时,一般与最近的if匹配
}

括号内对条件进行判断的表达式称为控制表达式(control expersssion)。

3.if-else的嵌套

如果条件成立,又执行多条语句时,通常使用if-else嵌套语句。一个简单的例子:

#include<stdio.h>
int main()
{
    int a = 0, b = 2;
    if(a == 1)    //为假,直接跳出循环
    {
        if(b == 2)
        {
            printf("aaaaa\n");
        }
        else
        {
            printf("bbbbb\n");
        }
    }
    return 0;
}//无法运行出结果,仅示例作用
1.输出 a, b, c中最大的数:
#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    int max = 0;
    if (a > b)
    {
        if (a > c)    // a>b>c 
        {
            printf("max=%d\n", a);
        }
        else    // c>a>b 
        {
            printf("max=%d\n", c);
        }
    }
    else if (b > c)    // b>a && b>c
    {
        printf("max=%d\n", b);
    }
    else    // b>a && c>b
    {
        printf("max=%d\n", c);
    }
    return 0;
}//输出 a, b, c中最大的数,仅示例

此外,使用条件运算符同样能够表示选择结构:

	max = (a > b) ? a : b;
	max = (max > c) ? max : c;    //输出 a, b, c中最大的数,仅示例
2.输出闰年:
//能被4整除并且不能被100整除是闰年
//能被400整除是闰年
int main()
{
	int year;
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
		printf("%d\n", year);
	return 0;
}//输出闰年年份

2.switch语句

1.switch语句和break语句

switch 语句和 if-else 类似,都可以作为条件分支判断,当分支判断较少的适合推荐使用 if-else ;当分支判断比较多的时候推荐使用 switch 语句,具体使用的一般性式表示为:

switch (表达式)
    {
    case 常量表达式1:
        语句块1;
        break;
        ……
    case 常量表达式m:
        语句块m;
        break;
    default:
        语句块m+1;
        break;
    }

程序执行时,首先计算表达式的值,若与 case 后面的常量表达式值相等就执行对应部分的语句块,执行完后利用 break 语句跳出 switch 分支。若表达式的值与所有的 case 后的常量表达式均不匹配,则执行 default 项对应的语句 m+1 ,执行后跳出 switch 分支语句。

1.说明:
  1. 语句块可以是一条语句,或其它复合语句,可以不用{};
  2. switch 匹配的表达式可以是:①byte、short、char、int类型及这4种类型的包装类型;②枚举类型;③String 类型;
  3. case 后面的常量表达式只能是整型、字符型或枚举型常量的一种,各 case 语句表达式的值各不相同;
  4. case 语句并不会终止程序执行,通常需要执行 break 语句来跳出分支;若某  case 语句的语句块被执行后,若其后没有 break 语句,则顺序执行其它 break 语句,直到遇到 break 语句或后面所有 case 语句全部执行完,再跳出 switch 分支语句;
  5. 各个 case 和 default 出现的先后次序,并不影响执行结果;
  6. default 语句不是必须的,但建议加上作为默认情况处理项。
2.输出星期
#include <stdio.h>
int main()
{
    int a;
    printf("请输入数字1-7: ");
    scanf("%d", &a);
    switch (a)
    {
    case 1:
        printf("Monday\n");
        break;
    case 2:
        printf("Tuesday\n");
        break;
    case 3:
        printf("Wednesday\n");
        break;
    case 4:
        printf("Thursday\n");
        break;
    case 5:
        printf("Friday\n");
        break;
    case 6:
        printf("Saturday\n");
        break;
    case 7:
        printf("Sunday\n");
        break;
    default:
        printf("error!\n");
        break;
    }
    return 0;
}

2.switch语句的嵌套

输出工作日及休息日
#include <stdio.h>
int main()
{
    int day = 0;
    printf("请输入今天是星期几:");
    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("输入错误,请输入1-7范围内的数字\n");
        break;
    }
    return 0;
}

3.循环结构

循环语句就是一些语句重复执行多次。

1.while循环语句

while(表达式)
    语句;    //如果循环体要加入更多语句,可以加上大括号

当表达式的值为真(非零)时,重复执行循环语句,直到表达式的值为假(零),则跳出循环,执行其他语句。

1.while循环中的break和continue

  • break在while循环中的作用:终止循环;
  • continue在while循环中的作用:跳出本次循环,进行下一次循环。

2.三位数的逆序打印

#include<stdio.h>
int main()
{
	int num = 0;    //初始化赋值
	scanf("%d", &num);
	while (num > 0)    //条件判断
	{
		printf("%d", num % 10);    //循环体{}
		num /= 10;
	}
	return 0;
}//仅示例

3.求S=1+2+3+···+99+100

#include<stdio.h>
int main()
{
	int i = 1;    //初始化赋值
	int sum = 0;
	while (i <= 100)    //条件判断
	{
		sum += i;    //循环体{}
		i++;
	}
	printf("1+2+3+...+99+100=%d\n", sum);
	return 0;
}

2.for循环语句

for 循环把初始化,调整,判断三个部分放在了一起,是三种循环中使用最多的,语法形式如下:

for(表达式1:表达式2:表达式3)
//循环变量初始化 : 循环结束条件的判断 : 循环变量调整
    语句;    //如果循环体要加入更多语句,可以加上大括号

1.循环执行的过程

在这里我们给出简单示例:

#include<stdio.h>
int main()
{
	int i = 0;    //循环变量
	for (i = 1; i <= 10; i++)    //i++与++i效果上没有求别
	{
		printf("%d\n", i);
	}
	return 0;
}//输出1-10
  1. for循环的初始化部分只被执行一次;
  2. 然后执行循环控制语句( i<n )如果循环控制语句为真( i<10 ),执行循环体;如果循环控制语句为假( i>=10 ),结束本次循环;
  3. 执行表达式 i++;
  4. 继续执行循环控制语句,直到循环控制语句为假,退出循环。 

 2.计算1到100间所有3的倍数的和

#include <stdio.h>
//法一
int main()
{
	int i = 0;
	int sum =  0;
	for (i = 1; i <= 100; i++)
	{
		if(i%3 == 0)
			sum = sum + i;
	}
	printf("%d\n", sum);
	return 0;
}//计算1到100间所有3的倍数的和
#include <stdio.h>
//法二
int main()
{
	int i = 0;
	int sum = 0;
	for (i = 3; i <= 100; i += 3)
	{
		sum = sum + i;
	}
	printf("%d\n", sum);
	return 0;
}//计算1到100间所有3的倍数的和

3.求S=1+2+3+···+99+100

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

3.do-while循环

循环语句中,do-while使用的最少,语法如下:

do
    语句;
while(表达式);

1.do-while循环打印1~10:

#include <stdio.h>
//使用 do while 循序在屏幕上打印1~10的值
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	}while (i<=10);
	return 0;
}

说明

  • do while与while基本相同,while循环判断表达式为真才会执行循环语句;
  • do while第一次执行时不会判断表达式(表达式为假也会执行一次循环语句);
  • 适用于某个功能必须执行一次,后续是否执行通过是否满足条件判断。

2.求S=1+2+3+···+99+100

#include<stdio.h>
int main()
{
	int i = 1;    //初始化赋值
	int sum = 0;
	do
	{
		sum += i;    //循环体{}
		i++;
	} while (i <= 100);		//循环条件判断
	printf("1+2+3+...+99+100=%d\n", sum);
	return 0;
}

本篇仍有诸多不足,欢迎留言讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值