循环函数的应用

针对于不同的循环函数,他们的使用方式是不一样的,例如:if else循环,while循环,swich循环,do while循环语句,for循环语句 ,都充满了不同。

对于if else循环:if(判断条件){循环内容} else if(判断条件){循环内容}else(与for或者for和else if相反的判断条件){循环内容}

                例如:判断闰年

                要先判断闰年,首先得知道判断闰年的条件是什么,判断闰年的条件有两条,第一条:能被4整除且不能被一百整除的是闰年,第二,能被四百整除的是闰年。由这两个条件我们就能知道判断闰年的基本条件是什么,所以就可以写出以下代码:

if(year%4==0 && year%100!=0)
{
    printf("%d",year);
}

else if (year%400==0)
{
    printf("%d",year);
}
else
{
    printf("不是闰年");
}

对于while循环语句,相对来说没有for循环的麻烦,while(循环条件),循环条件为真,就能运行下去,循环条件为假就跳出循环。当然循环条件要是为0,也认为是假直接跳出循环。

        例如求出最大公约数:

        最大公约数可以理解为两个数的共同的最大因数,为此,我将运用最基本也是最简单的辗转相除法。辗转相除法的原理为:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。 代码如下:

while(m%n)
{
    r=m%n;
    m=n;
    n=r;
}
printf("%d\n",n);

        设两个数为m 和 n,人为的让m为最大数,要想保证m为最大值运行代码可以直接在上面写一个比较代码,令m存入最大值,这样无论输入什么顺序都能保证程序正确运行。r 为余数,通过辗转相除法得到最终结果。

对于swich语句,可以理解为swich是一种选择题一样的语句,swich(整型),整个swich语句包含 case+整型表达式,default函数,其作用为在swich语句中,没有输入项,自动走默认路径。每一个case语句在独立结束的时候,都要加上break函数来进行结束,当多个case语句输出同一个语句的同时可以简化书写,在最后一个case语句加上break函数即可。;例如以下代码

swich(day)
{
    case1:
    case2:
    case3:
    case4:
    case5:
            printf("工作日");
            break;
    case6:
            printf("休息日");
            break;
    case7:
            printf("休息日");
            break;
    default:
            printf("输入错误,请重新输入");
            break;
}

        当然default的顺序可以任意,可前可后,存在也是可有可无。

对于do while循环语句,和while循环语句相似,只有一点不同就是,do while先执行循环体语句,然后在进入判断循环条件是否满足表达式的值;而while是先判断表达式的值是否满足要求,在执行语句。例如:

do
{
    运行的东西

}while(判断条件)

        当然,对于目前我自己的学习情况,认为do while循环语句一般都和swich循环语句一起相搭配使用,用于菜单的制作,如以下操作:

	do
	{
		menu();
		printf("请选择:\n");
		scanf_s("%d", &a);
		switch(a)
		{
			case 1:
				game();
				break;
			case 0:
				printf("退出游戏\n");
				break;
			default:
				printf("输入有问题,请重新输入:\n");
				break;
		}
	} while (a);

对于for循环语句,这个语句对于目前学习状态来看,是最常用,也是最实用的循环语句,for(元素初始值;判断条件;元素变化值){循环条件}。举一个最简单的例子,乘法口诀表:

int i = 0;
for(i=1;i<=9;i++)
{
    int j = 1;
    for(j=1;j<=i;j++)
    {
        printf("%d*%d=%2d",i,j,i*j); //%2d为右对齐,%-2d为左对齐,2为2个符号位,没有数字系统会自动拿空格填入,以保证美观
    }
    printf("\n");
}

这是最简单for循环的利用,通过嵌套一个for循环来实现乘法口诀表,乘法口诀表一共9列,从上到下呈现逐个递增的模式,外层循环控制向下进行也就是列的书写,内层循环控制横行的书写,也就是行的书写,最终实现口诀表,更改外层循环的数字,可实现多个乘法口诀表。

以上代码如果不能运行,请看一下是不是中英文书写的关系,以上不足请各位大佬多多指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值