C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。

C语言的语法结构主要有三种:顺序、循环、选择分支

以题目为打印九九乘法表,有三种形式要求,如图:

一、顺序结构:顾名思义就是按照自上而下的顺序执行指令。

例如,输入一个数字666,再把它原样输出。这是按照顺序走的步骤,也就是,先“输入数字”再“输出数字”

代码如下

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	printf("%d",n);//输出数字 
	return 0;
 }

运行结果如下:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第1张图片

解释:就是按照从上到下的顺序执行操作,这是C语言最基本的结构。

二、选择分支结构——if、if-else、if-else if-else、swtich多分支选择结构

if条件结构,解释为“是真则行”

我将以上的代码做了修改,意思为“输入的数字小于0时才输出数字”

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	if(n<0)//输入的数字要小于0才能进行以下的操作 
	printf("%d",n);//输出数字 
	return 0;
 }

此时if条件语句中,要想输出数字,就要使得条件“n<0”为真命题。

当我输入的n大于0时,结果如下:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第2张图片

当我输入的n小于0时,结果如下:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第3张图片

if-else的“你死我活”条件结构

基于以上的if“是真则行”的状态,if-else语句讲究的就是一种互斥状态——如果if语句的条件不是真命题,那么就执行else的语句。

也就是,如果if条件是假命题,相当于“死”了,那么else的操作就会执行,相当于“活”了;反言之,if“活”了,那么就执行if的操作,else就已经“死”了。

借鉴以上的代码修改如下:

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	if(n<0)//输入的数字要小于0才能进行以下的操作 
	printf("%d",n);//输出数字 
	else//当输入的数字大于0就做以下操作(或者说,if条件是假命题) 
	printf("输入的数字是大于零的,我不输出这个数字"); 
	return 0;
 }

当输入的n>0,结果如下:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第4张图片

当输入的n<0,结果如下

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第5张图片

if-else if-else的分支条件语句,是基于if-else的多情况描述和操作,但是和if-else相似的是,按照顺序只要有一个被满足就执行然后不再进行下一步操作。

修改如下:

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	if(n<0)//输入的数字要小于0才能进行输出数字 
	printf("%d",n);//输出数字 
	else if(n==-1)//当输入的n是-1 时就输出以下文字 
	printf("太小气了,你只输入一个-1!"); 
	else//当输入的数字大于0就做以下操作(或者说,if条件是假命题) 
	printf("输入的数字是大于零的,我不输出这个数字"); 
	return 0;
 }

 当我输入-1,结果如下:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第6张图片

由于最先开始的条件n<0已经被满足了,所以,执行完第一个条件的操作后下一步就不再执行。

所以,要想输入else if中的操作语句,就必须对前面的条件再修改。

修改如下:

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	if(n<-1)//输入的数字要小于-1才能进行输出数字 
	printf("%d",n);//输出数字 
	else if(n==-1)//当输入的n是-1 时就输出以下文字 
	printf("太小气了,你只输入一个-1!"); 
	else//当输入的数字大于0就做以下操作(或者说,if条件是假命题) 
	printf("输入的数字是大于零的,我不输出这个数字"); 
	return 0;
 }

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第7张图片

swtich 的多路选择结构

#include
int main(void)
{
	int n;//先定义一个整型变量,保存输入的数字 
	scanf("%d",&n);//输入数字 
	switch(n)
	{
		case -2://当n为-2, 则执行以下输出数字n的操作 
			printf("%d",n);
			break;//这个分支的操作被执行,break是用来告诉计算机不用在执行以下操作 ,以下同理。 
		case -1://当n为-1,则执行输出以下文字的操作 
			printf("太小气了,你只输入一个-1!"); 
			break;
		case 666://同理 
			printf("输入的数字是大于零的,我不输出这个数字");
			break; 
	}
	return 0;
 }

值得注意的是,case后面一定是一个常量或字符,是一个确定明确的数值或字符,因此,switch语句一般用于设计菜单,或者多选择上,可能不适合用在表示范围的问题。 

三、循环结构——for、while、do-while;

一般分为两种循环:计数控制循环、条件控制循环

前者是指,知道循环次数的循环;后者是指不知道循环次数的循环。

三者的表现形式一般如下:

1)for

for(循环控制变量的初始值循环条件循环控制变量的变化

{操作语句1;操作语句2;.......;操作语句n;}

2)while

while(执行循环的条件

{操作语句1;操作语句2;操作语句3;.......;操作语句n;}

3)do-whlie

do

{

操作语句1;操作语句2;操作语句3;操作语句4;.......操作语句n;

}while(执行循环的条件);

值得注意的是,这三种循环的执行条件只有在条件为真命题的时候才能执行,三种循环可以相互嵌套使用。

对于while与do-while,区别就在于  :  前者是先判断条件,再执行;后者是先执行,再判断条件。

因此,do-while无论条件是否满足,都至少执行一次。

四、循环例子:循环的嵌套使用——九九乘法表的三种打印

第一种结果:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第8张图片

代码如下:

#include//九九乘法表的打印思路——行数*列数
int main(void)
{
	int n,i,j;//n用作前两行的循环控制变量,i用于从第三行开始的行数表示,j用于表示列数
	char p='_';//定义字符变量
	for(n=1;n<=2;n++){
		if(n==1)//第一行的打印
			for(j=1;j<10;j++)
			printf("%d\t",j);
		if(n==2)//第二行的打印
		for(i=1;i<10;i++)
		printf("%c\t",p);
		printf("\n");
	}
	for(i=1;i<=9;i++)//这一步是嵌套循环的使用,正式打印九九乘法表
{
	for(j=1;j<=9;j++)
    {
		printf("%d\t",i*j);//水平制表
	}
	printf("\v");//垂直制表
	}
	return 0;
 } 

第二种结果如图:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第9张图片 

运行代码只改动一部分即可,采用if-continue;语句

#include
int main(void)
{
	int n,i,j;
	char p='_',s=' ';
	for(n=1;n<=2;n++){
		if(n==1)
			for(i=1;i<10;i++)
			printf("%d\t",i);
		if(n==2)
		for(i=1;i<10;i++)
		printf("%c\t",p);
		printf("\n");
	}
	for(i=1;i<=9;i++){
	for(j=1;j<=9;j++){
		if(j>i)continue;//改动部分if-continue语句的使用
		printf("%d\t",i*j);
	}
	printf("\v");
	}
	return 0;
 } 

第三种结果如图:

C语言知识点——三种结构:顺序、循环、选择分支;以及九九乘法表的三种打印。_第10张图片

运行代码如下: 

#include
int main(void)
{
	int n,i,j;
	char p='_',s=' ';//要定义空字符来占用前面未打印的数字位置
	for(n=1;n<=2;n++){
		if(n==1)
			for(i=1;i<10;i++)
			printf("%d\t",i);
		if(n==2)
		for(i=1;i<10;i++)
		printf("%c\t",p);
		printf("\n");
	}
	for(i=1;i<=9;i++){
	for(j=1;j<=9;j++){
		if(j

你可能感兴趣的:(c语言,开发语言)