栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习入门——循环

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习入门——循环

重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。


while语句:

        while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。

	int count;
	int sum = 1;

	printf("请输入一个整数:");
	scanf("%d",&count);
	
	while (count / 10 >=1)
	{
		sum++;
		count /=10;
	}

	printf("这个数是%d位数。n", sum);



do-while语句:

        do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

    int count;
	int sum = 0;

	printf("请输入一个整数:");
	scanf("%d",&count);
	
	do
	{
		sum++;
		count /= 10;
	} while (count >= 1);
	
	printf("这个数是%d位数。n", sum);


for循环语句

       for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每一轮循环体,计数器以一定步骤进行调整,比如+1或者-1。

       注:中间用分号隔开。

	int n, i;

	printf("请输入你要求的数:");
	scanf("%d", &n);
	int sum = 1;

	for (i = 1; i <= n;i++)
	{
		sum *= i;
	}

	printf("这个数的阶乘为%d。n", sum);

for(初始动作;循环条件;每轮的动作)

{

        ……

}

  • for中的每个表达式都是可以省略的

for(;条件;)==while(条件)


 循环语句的选择
  • 如果有固定次数,用for;
  • 如果必须执行一次,用do_while;
  • 其余情况用while.

逻辑类型和运算 

bool类型需要首先定义头文件#include,之后就能使用bool类型和ture和false.

1、逻辑运算

       对逻辑量进行的运算,结果只有0或1.

       ex:1、如何表达区间x∈(5,9)?

                    x>5&&x<9

               2、如何判断一个字符c是否是大写字母?

                    c>='A'&&c<='Z'

       短路:逻辑运算是按照从左往右的顺序进行的,如果左侧的结果已经可以决定结果了,就不会做右侧的计算。(不把赋值组合进逻辑表达式)

   

2、条件运算符

    ex:count=(count>20)?count-10:count+10;

         条件?条件满足时的值:条件不满足时的值;就等价于

         注:优先级高于赋值运算符,低于其他运算符。

3、逗号运算符

        逗号是用来连接两个表达式的,并且以右边的值作为逗号运算的结果。 

        主要用涂:在for语句中使用:

          for(i=0,j=10;i

int i;
i=3+4,5+6;             //i=7
i=(3+4,5+6);           //i=11

        


级联和嵌套的判断

1、嵌套的判断:当if语句的结果满足或者不满足时,要执行的语句也可以是一条if或else语句

int a, b, c, max;
	printf("请输入要比较的三个数:");
	scanf("%d %d %d", &a, &b, &c);
	if (a > b) {
		if (a > c) {
			max = a;
		}
		else {
			max = c;
		}
	}
	else {
		if (b > c) {
			max = b;
		}
		else {
			max = c;
		}
	}
	printf("最大的数为:%dn", max);

        注:编译器不主动识别缩进,因此没有大括号,else总是和最近的if匹配

2、级联的判断:if-else if


switch-case语句(多路分支) 

 

1、控制表达式只能是整数型的结果;

2、常量可以是常数,也可以是常数计算的表达式;

3、break:跳出循环,如果没有就会顺序执行下一条语句。                                                       


实例练习: 

1、用户输入一系列正整数,最后输入-1表示输入结束,然后计算这些数据的平均数,输出输入数字的个数和平均数。

    int i;
	int sum = 0;
	int n = 0;
	double average;
	scanf("%dn", &i);
	while (i != -1) {
		sum += i;
		n++;
		scanf("%dn", &i);
	}
	average = sum / n;
	printf("平均数=%fn", average);
	return 0;

2、猜数游戏

计算机想一个数,然后让用户来猜,用户每输入一个数就告诉用户猜大了还是小了,直到猜对为止,并且告诉用户猜了多少次。

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
int main()
{
    int Guess, Num;  //Guess猜数,Num随机数 
    int Next;   //下一次执行 
    do
    {
        system("cls");   //清屏 
        printf("-------------------------------------n");

        srand(time(NULL));
        Num = rand() % 100 + 1; //随机生成1-100数字 

        printf("请猜猜1-100内的数字:n");
        scanf("%d", &Guess);

        while (Guess != Num)
        {
            //scanf用于继续猜数判断 
            if (Guess > Num)
            {
                printf("猜大啦.n");
                scanf("%d", &Guess);
            }
            if (Guess < Num)
            {
                printf("猜小啦.n");
                scanf("%d", &Guess);
            }
        }

        printf("恭喜你猜对啦!n");
        printf("想不想再猜一猜?Y/y或N/nn");
        getchar();  //输入是否继续执行字符y/n 
        printf("-------------------------------------n");
        Next = getchar(); //赋值 

    } while (Next == 'Y' || Next == 'y'); //判断下次是否执行 

    printf("程序已退出...n");
    return 0;
}

for循环是高级语言出现的第一种循环,它和现代的程序设计理念是否存在差距?为什么Python语言就没有C语言这种形式的for循环了?

        for循环不符合人类的语言逻辑,并不易于理解,因此就造成了第一次接触语言的人难以理解for循环所表达的意思。而现代程序设计理念更强调与人类语言的逻辑统一性而非编译逻辑故此在新兴的python语言中祛除掉了C中的for循环逻辑。但由于for循环抽象程度高,所以在掌握语言基础后,其表现逻辑更为简洁易于回溯反而更方便使用。为什么Python语言就没有C语言这种形式的for循环了,查到一个原因是Python里没有累加器。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/917489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号