C语言:分支循环结构

目录

一、if - else语句

1.语法结构     

2.多重判断语句

3.嵌套使用

二、for循环

1.语法结构

2.嵌套使用

三、while循环

1.语法结构

2.实操题目

四、do - while循环

1.语法结构

2.实操题目

五、switch语句

1.语法结构

2.使用规则

3.实操题目

4.嵌套使用


一、if - else语句

1.语法结构     

          if语句可以用来判断表达式是否成立,如果成立执行if下的代码,不成立则执行else下的代码

if(表达式)
{
xxx执行的程序语句
}
else
{
xxx
}

         在语句中真的返回值为1,而假的返回值为0

举个例子:

if(x<5)
{
return 1;
}
else
{
return 0;
}

        假如输出一个4,那麽满足if的条件;执行return 1,返回值为1;反之则执行else,返回值为0


2.多重判断语句

        else if表示有多个判断结果,至少有三种情况,才会用到。

举个例子:

比较两个数的大小;

#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
if(a==b)
{
    printf("%d=%d\n",a,b);
}
else if(a>b)
{
    printf("%d>%d\n",a,b)
}
else
{
    printf("%d<%d\n",a,b)
}

return 0;
}

 通过分析题目,我们知道比较两个数的大小有三种情况,根据代码我们可以看出,利用了else if来进行判断。


3.嵌套使用

if语句中还可以包含一个或者多个 if 语句,此种情况称为 if 语句的嵌套;一般用于处理复杂多样的条件判断。

举个例子:

判断三个数中的最大数

#include <stdio.h>
int main()
{
int a,b,c;
int max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
    if(a>c)
        {
          max=a
            }

    else
        {
          max=c 
            }
}
esle
{
    if(b>c)
        {
          max=b
            }
    else
        {
          max=c
            }
}

return 0;
}

 具体的流程如图:


二、for循环

1.语法结构

for循环是编程语言中一种循环语句,而循环条件由循环体及循环的判定条件两部分组成,其表达式为:

for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}

举个例子:

打印1-10

#include <stdio.h>
int main()
{
int i;
for(i=1;i<=10;i++)//从i=1开始每执行一次循环体,跳回for循环,直到跳出
{
    printf("%d",i);

}

return 0;
}

2.嵌套使用

        主要分为外循环和内循环,一般使用的都为双重循环,很少使用多重循环。

举个例子:

表示九九乘法表

#include <stdio.h>

int main()

{

	int i, j;

	for (i = 1; i <= 9; i++)#外循环

	{

		for (j = 1; j <= i; j++)#内循环

			printf("%d*%d=%d ", i, j, i * j);

		puts(" ");

	}

	return 0;

}

先执行外循环,再执行内循环。

此处的外循环相当于行数,内循环则是列数,因为列数要参考行数来定,所以此处列数应小于行数

3.实操题目

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

#include <stdio.h>

int main()

{

	int i;

	double sum1 = 0;

	double sum2 = 0;

	double sum;

	for (i = 1; i <= 100; i += 2)

	{

		sum1 += 1.0 / i;

	}//计算sum1的值,即奇数位的值的和

	for (i = 2; i <= 100; i += 2)

	{

		sum2 += 1.0 / i;

	}//计算sum2的值,即偶数位的值的和

	sum = sum1 - sum2;

	printf("%f", sum);

	return 0;

}

写一个代码打印1-100之间所有3的倍数的数字

#include <stdio.h>

int main()
{

    int a, i;

    scanf_s("%d", &i);

    for (a = 3; a < i; a++)

    {

        if (a % 3 == 0)

            printf("%d", a);

        printf(" ");

    }

    return 0;

}//同时利用了for和if进行嵌套

写一个代码:打印100~200之间的素数

//思路:
素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数,具体方式如下
#include <stdio.h>

int main()

{

	int i = 0;

	for (i = 100; i <= 200; i++)//打印100-200,100肯定不是素数,所以从101开始

	{
		//判断是否为素数
		int j = 0;

		for (j = 2; j < i; j++)

		{

			if (i % j == 0)

			{

				break;

			}

		}

		if (i == j)

		{

			printf("%d ", i);

		}

	}

	return 0;

}

三、while循环

1.语法结构

        while循环是一种基本的循环结构,当满足条件时,进入循环,不满足,则跳出循环。它的基本语法结构如下:

while(判定条件)
{
     循环体;
}

2.实操题目

一个整数从零开始递增

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

一个整数倒数递减到零

#include <stdio.h>
int main()
{
int a;
printf("a"); scanf("%d", &a);
while (a >= 0)
{
printf("%d ", a);
a--;
}
printf("\n");

return 0;
}

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。 

#include <stdio.h>

int main() {
    int a, b, c;
    while (scanf("%d %d %d", &a, &b, &c) != EOF)//能够多次输出
    {

        if (a + b > c && a - b < c)//根据两边之和大于第三边,两边之差小于第三边
        {
            if (a == b && b == c)
                puts("Equilateral triangle!");
            else if (a == b || a == c || b == c)
                puts("Isosceles triangle!");
            else
                puts("Ordinary triangle!");
        }
        else
        {
            puts("Not a triangle!");
        }
    }
    return 0;
}

四、do - while循环

1.语法结构

do-while 循环是 while 循环的变体。在检查while条件是否为真之前,该循环首先会执行一次do之内的语句,然后在while内检查条件是否为真,如果条件为真的话,就会重复do-while这个循环,直至while为假。

do
{
循环体;
}while(表达式);

循环体可以为单条语句,也可以为多条语句。

2.实操题目

递增偶数

#include <stdio.h>
int main(void)
{
	int i, a;
	printf("a"); scanf("%d", &a);
	i = 2;
	do {

		printf("%d ", i);
		i += 2;
	}
	while (i < a);
	
	return 0;
}

逆向显示正整数

#include <stdio.h>
int main()
{
	int a;
	do {
		printf("请输入一个正整数:");
		scanf("%d", &a);
		if (a <= 0)
			puts("\a请不要输入非正整数");

	} while (a <= 0);
	printf("输入的数逆向显示的数为");
	while (a > 0)
	{
		printf("%d", a % 10);//首先会得到最后一位,再除以十,再次得到下一位。以此类推。会得到逆向数。
		a /= 10;
	}
	puts("。");
	return 0;
}

循环判断输出的数的奇偶性

#include <stdio.h>
int main(void)
{
	int retry;
	do {
		int a;
		printf("a"); scanf("%d", &a);
		if (a % 2)
			puts("这个数为奇数");
		else
			puts("这个数为偶数");
		printf("要重复一次吗?【yes···0/no···9 】:");
		scanf("%d", &retry);

	} while (retry == 0);


	return 0;
}

五、switch语句

1.语法结构

switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。

switch ( 变量表达式 )
{
	case 常量1 :语句;break;
	case 常量2 :语句;break;
	case 常量3 :语句;break;
	...
	case 常量n:语句;break;
    
	default :语句;break;
}

2.使用规则

  • 只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句
  • switch的参数类型不能为实型 。
  • case标签必须是常量表达式(constantExpression),如42或者'4'。
  • case标签必须是唯一性的表达式;也就是说,不允许两个case具有相同的值等等。

3.实操题目

判断奇偶数

#include <stdio.h>
int main(void)
{
	int a;
	printf("a"); scanf("%d", &a);
	switch (a % 2)
	{
	case 0:puts("该数为偶数"); break;
	case 1:puts("该数为奇数"); break;
	}
	return 0;
}

判断月份是哪一季节

#include <stdio.h>
int main()
{
	int month;
	printf("month"); scanf("%d", &month);
	switch (month)
	{
	case 1:printf("%d月为春季\n",month); break;
	case 2:printf("%d月为春季\n", month); break;
	case 3:printf("%d月为春季\n", month); break;

	case 4:printf("%d月为夏季\n", month); break;
	case 5:printf("%d月为夏季\n", month); break;
	case 6:printf("%d月为夏季\n", month); break;

	case 7:printf("%d月为秋季\n", month); break;
	case 8:printf("%d月为秋季\n", month); break;
	case 9:printf("%d月为秋季\n", month); break;

	case 10:printf("%d月为冬季\n", month); break;
	case 11:printf("%d月为冬季\n", month); break;
	case 12:printf("%d月为冬季\n", month); break;

	default:printf("%d月不存在\n");
		break;
	}

确定switch语句动作

int main(void)
{
	int a;
	printf("a"); scanf("%d", &a);
	switch (a)
	{
	case 1:puts("A"); printf("B"); break;
	case 2:puts("C");  break;
	case 4:puts("D");  
	case 5:puts("E"); puts("F"); break;
	case 6:
	case 7:puts("G"); break;
	default:puts("H"); break;
	}
	return 0;
}

//不在上面的数字会输入default所输出的值;在上面但是没有break的往下走一直到break;

4.嵌套使用

switch语句可以嵌套

#include <stdio.h>
int main()
{
int a,b;

switch(a)
{
    case 1 :
    case 2 :
    switch(b)
    {    
    case 1:
    case 2:
    default:
    }
    case 3:
}
return 0;
}

先执行外部的switch语句,再执行内部

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翻斗花园牛爷爷★

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

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

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

打赏作者

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

抵扣说明:

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

余额充值