C语言中的各种循环

C程序在默认情况下,是自顶向下执行,从main()的起始位置开始,逐条地执行语句,直到main()函数的最后。

但是实际情况中却很少这样,C语言提供了各种程序控制语句,以控制程序的执行次序。

流程控制语句有哪些呢?

if语句。

for语句。

while语句。

do...while语句。

1,for语句

for语句是一种C编程结构,它将一个由一条或多条语句组成的代码块执行特定的次数。它有时候也被称为for

循环,因为程序通常循环执行这种语句多次。

for语句的结构:

for(initial;condition;increment)

{

statement;

}

其中initial、condition、increment都是表达式,而statement为单条语句或复合语句。

程序执行到for语句时,将发生以下事件:

a,执行表达式initial。initial通常是一条赋值语句,将一个变量设置为特定的值。

b,判断condition。condition通常是一个关系表达式。

如果condition为假(即等于0),for语句结束,并接着执行statement语句后面的

第一条语句。

如果condition为真(即不等于0),则执行statement语句。

c,执行表达式increment,然后返回到第2步。

简单的for循环

#include<stdio.h>
/*
for循环示例
*/

int i; //在声明全局变量 i
//打印1到20的数字
void main(void)
{
	for (int i = 1; i <= 20;i++)  // 向上计数
	{
		printf("%d\n",i);
	}

	system("pause");
}

运行后的结果

for语句常常被用来“向上计数”,也就是将计算器从一个值增加到另一个值,我们也

可以使用“倒计数”,也就是将计算器变量递减。

倒计数

#include<stdio.h>

void main()
{
	for (int i = 20; i >= 1;i--)//倒计数
	{
		printf("%d\n",i);
	}
	system("pause");
}

运行后结果

增量为2

#include<stdio.h>

void main()
{
	int i = 0;
	/*
		for语句非常灵活,若已经在程序前面初始化了计数器,则可以省略初始化表达式,但不能省略分隔符。

	*/
	for (; i <= 20; i += 2)//向上计数,但增量为2
	{
		printf("%d\n", i);
	}
	system("pause");
}

  运行后结果

 另一种写法

#include<stdio.h>

void main()
{
	int i = 0;
	for (; i <= 20;)//向上计数,但增量为2
	{

		//i++   写在这里也是可以的
		printf("%d\n", i++); //i++  放在这里也是也是可以的
	}
	system("pause");
}

运行结果

深入理解for

#include<stdio.h>

void main()
{
	/*
	用于终止for循环的表达式也可以是任何表达式。只要该表达式为真(非零),for语句便会继续执行。

	*/
	int i = 0;
	int j = 15;
	for (; i <= 20 && j>=0;)//向上计数,但增量为2
	{
		j--;

		//i++   写在这里也是可以的
		printf("%d\n", i++); //i++  放在这里也是也是可以的
	}
	system("pause");
}

运行后结果

initial 可以使任何合法的表达式,通是一个将变量设置为特定的赋值语句。

condition 可以是任何合法的表达式,通常是一个关系表达式。当condition为假(0)时,for

语句将终止,然后接着执行statement后面的第一条语句;否则将执行statement中的语句。

for语句中可以包含另一条for语句,这就是嵌套。

打印任意行和列

#include<stdio.h>

void draw_box(int, int);

void main()
{
	//打印出8行25列的X
	draw_box(8, 25);
	system("pause");
}

void draw_box(int row, int column)
{

	int col; //定义中间变量
	for (; row > 0;row--)
	{
		for (col = column; col > 0;col--)
		{
			printf("x");
		}
		printf("\n"); //每行打印完毕后,添加换行符使其换行
	}

}

 运行结果

2,while语句

while语句也叫while循环,他不断地执行一个语句块,直到条件为假为止。

while(condition)

statement

其中condition可以使任何表达式,statement是一条语句或一个复合语句。

程序执行到while语句后,将发生一下事件:

a,计算表达式condition;

b,如果condition为假(0),while语句将结束。

c,如果condition为真(非0),将执行statement中的语句。

d,返回到第1步。

while循环

#include<stdio.h>
int count;
/*
打印1到20的数字
*/
void main()
{
	count = 1;//初始化
	while (count<=20)
	{
		printf("%d\n",count);
		count++;
	}
	system("pause");

}

运行结果

结论:

for(;condition;) 等价于 while(condition);

由于这种等价性,使用for语句能够完成的任何工作,都可以用while语句来完成。

使用while语句时,必须先使用单独的语句来完成所有必要的初始化工作,同时必

须在while循环体内使用一条语句来完成递增工作。

和for语句一样,while语句的嵌套。

for和while的结合

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int array[5]; //声明一个容量为5的数组
void main(void)
{
	//声明并初始化2个变量
	int ctr = 0,
		nbr=0;
	printf("This program prompts you to enter 5 numbers \n");
	printf("Each number  should be  from 1 to 10 \n");

	while (ctr < 5)
	{
		nbr = 0;
		while (nbr<1|| nbr>10)
		{
			printf("\n Enter number %d of 5:",ctr+1);
			scanf("%d",&nbr);
		}
		array[ctr] = nbr;//给数组赋值
		ctr++; //增量1
	}
	//输出数组
	for (ctr = 0; ctr < 5;ctr++)
	{
		printf("Value %d is %d\n",ctr+1,array[ctr]);
	}
	system("pause");
}

 运行结果

时间: 2024-10-28 23:04:28

C语言中的各种循环的相关文章

Java语言中的----条件循环

day06 Java语言中的条件循环 一.条件循环概述: 条件循环对于我们来说一点也不陌生,在程序中使用循环语句是很普片的事儿,所以说你一定得学会循环语句. 二.条件循环 条件循环主要包括两个循环语句,分别是if...else和switch...case语句. 1.if循环结构         if (){                  }else{                  } 2.switch...case循环结构         switch () {     case 1:

Java语言程序设计基础篇 循环(四)

①打印:***** **** *** ** * for(int x=1; x<=5; x++) { for(int y=x; y<=5; y++) { System.out.print("*"); //向下一般的格式for(int y=x; y<=5; y++) } System.out.println(); } ②打印:* ** *** **** ***** for (int x=1; x<=5 ;x++ ) { for (int y=1;y<=x ;y

Java语句中的----条件循环

day06 Java语言中的条件循环 一.条件循环概述: 条件循环对于我们来说一点也不陌生,在程序中使用循环语句是很普片的事儿,所以说你一定得学会循环语句. 二.条件循环 条件循环主要包括两个循环语句,分别是if...else和switch...case语句. 1.if循环结构         if (){                  }else{                  } 2.switch...case循环结构         switch () {     case 1:

C语言优化实例:循环中减少判断

为了让编译器更好地优化循环,应该尽量让循环中减少判断,方法之一是将判断语句整合进表达式.还是这个例子: for (int i = 0; i < 1000*10; i++) { sum += data[i/1000][i%10]; } 假如我们需要加一个判断,只有非负整数才需要作求和运算: for (int i = 0; i < 1000*10; i++) { if (data[i/1000][i%10] >= 0) sum += data[i/1000][i%10]; } 下面将这个判断

C语言中不同类型的循环(Different types of loops in C)

C语言中有三种类型的循环:for,while,do-while. while循环先判断循环条件. while (condition) { //gets executed after condition is checked } do-while循环先执行循环体重的语句,再判断循环条件. do { //gets executed at least once } while (condition); for循环可以一行中初始化一个计数变量,设置一个判断条件,和计数变量的自增. for (int x

Python语言中循环引用(import)失败的解决方案

最近在开发智能家居项目hestia-rpi项目中,由于代码结构层级划分不合理,导致了循环引用(import)module失败的问题,错误如下: 1 2 3 4 5 6 7 8 9 10 Traceback (most recent call last):   File "./main.py", line 8, in &amp;lt;module&amp;gt;     from hestiarpi.library.server import server   File

从头开始-04.C语言中流程控制

分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一个代码会被执行 3.一个if语句中只能以if开头,最多只能有一个else,可以有任意个else if switch(表达式){ case 常量: ... break; case 常量1: ... break; default: ... break; } : 使用场景:当一个变量只有几个固定的取值的时

C语言中内存的管理

一  Handler作用和概念 包含线程队列和消息队列,实现异步的消息处理机制,跟web开发的ajax有异曲同工之妙. 1.运行在某个线程上,共享线程的消息队列: 2.接收消息.调度消息,派发消息和处理消息: 3.实现消息的异步处理: Handler能够让你发送和处理消息,以及Runnable对象:每个Handler对象对应一个Thread和Thread的消息队列.当你创建一个Handler时,它就和Thread的消息队列绑定在一起,然后就可以传递消息和runnable对象到消息队列中,执行消息

Coursera-Getting and Cleaning Data-week4-R语言中的正则表达式以及文本处理

Coursera-Getting and Cleaning Data-Week4 Thursday, January 29, 2015 补上第四周笔记,以及本次课程总结. 第四周课程主要针对text进行处理.里面包括 1.变量名的处理 2.正则表达式 3.日期处理(参见swirl lubridate包练习) 首先,变量名的处理,奉行两个原则,1)统一大小写tolower/toupper:2)去掉在导入数据时,因为特殊字符导致的合并变量 3)不要重复:4)少用代码缩写 使用的函数包括 替换查找: