C语言学习笔记之循环结构和选择结构

C语言循环结构和选择结构详解:

5.1 if else语句

if else的简单应用:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int age;
	printf("input your age\n ");
	scanf_s("%d",&age);

	if (age>=18){
    
    
		printf("you can!");
	}
	else {
    
    
		printf("you can not");
	}
	return 0;
}

小结:
不留无用空格
按照行业规范写代码

求两数的较大者:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int a, b, max;
	printf("input a and b:\n");
	scanf_s("%d %d",&a,&b);

	if (a>b)
	{
    
    
		max = a;
	}
	else
	{
    
    
		max = b;
	}
	printf("max is:%d",max);
	return 0;
}

多个if else

#include<stdio.h>
#include<stdlib.h>

int main() 
{
    
    
	char c;
	printf("input a character:\n");
	c = getchar();
	if (c<32)
	
		printf("this is a control character");
	
	else if (c>='A'&&c<='Z')
	
		printf("this is a capital letter");

	
	else if (c>='a'&&c<='z')
	
		printf("this is a small letter");
	
	else
	
		printf("this is other letter");

	return 0;

}

多个if else:
在这里插入图片描述

小结:
else总是根与他上面最近的if对应

多层if else

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int a, b, max;
	printf("input two number:\n");
	scanf_s("%d%d",&a,&b);
	if (a!=b)
	{
    
    
		if (a>b)
		{
    
    
			max = a;
			printf("max is:%d\n",max);
		}
		else
		{
    
    
			max = b;
			printf("max is %d\n", max);
		}
	}
	else
	{
    
    
		printf("a=b");
	}

}

利用e输出指数:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int a = 3e+4;
	printf("a=%d",a);
	return 0;
}

5.2关系运算符

关系运算符是双目运算符,用于判断两边的大小关系,均是左结合性

左结合性:对于含多个关系运算符的表达式,如
kji+5,根据运算符的左结合性,先计算kj,该式不成立,其值为0,再计算0i+5,也不成立,故表达式值为0。
初学者在编程的时候要注意赋值运算符与等于运算符 ,摆脱数学的困扰。

C原因的关系运算符
大于、大于等于
小于、小于等于
不等于、等于

运算符的优先级:
算术运算符>关系运算符>赋值运算符

注:三目运算符只有一个 ?:

关系运算符的运算结果只有0或1

ASCII码表:ASCII码表

48-57对应0-9
65-90对应A-Z
97-122对应a-z

5.3逻辑运算符

逻辑运算的与&& 或|| 非!
简单例子使用逻辑运算符

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int i;
	float j;
	printf("input two number:\n");
	scanf_s("%d%f",&i,&j);

	if (i>18&&j>60)
	{
    
    
		printf("you can");
	}
	else
	{
    
    
		printf("you can not");
	}
	return 0;
}

运算符的优先级:
非>算术运算符>关系运算符>逻辑与和或>赋值运算符

5.4 switch case break语句

break专门用于跳出switch
case后面必须是整数或者结果为整数的表达式

单引号的作用于ASCII码

5.5条件运算符

条件运算符是C语言唯一一个三目运算符
?:
先判断,根据判断的结果再决定执行哪一个

注:条件表达式的嵌套

注:无法判断第三个条件

非>算术运算符>关系运算符>逻辑与和逻辑或>赋值运算符
非>算术运算符>关系运算符>条件运算符>赋值运算符

5.6while循环和for循环

C语言由3中常用的程序结构:
顺序结构:
选择结构:
循环结构:

利用while循环统计输入的字符串长度:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int n = 0;
	while (getchar()!='\n')
	{
    
    
		n++;
	}
	printf("n is:%d\n", n);

		return 0;
}

5.8跳出循环

break关键字用于跳出switch语句
break跳出while循环

两层while循环:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	int i=1;


	while (1)
	{
    
    
		 int j = 1;
		 while (1)
		 {
    
    
			printf("%4d", i*j);
			j++;
			if (j > 4)
			{
    
    
				break;	
			}
		 }
		printf("\n");
	
		i++;
		//printf("%4d", i*j);
		
		if (i > 4)
		{
    
    
			break;
		}
	}
	return 0;
}

break是结束,continue只结束当前语句。
continue语句:continue语句的作用是跳过循环体中剩余的语句强制进行下一次循环,而不是完整的结束。

continue的简单应用:

#include<stdio.h>
#include<stdlib.h>

int main() {
    
    
	char c=0;
	
	while (c!='\n')
	{
    
    
		c = getchar();

		if (c=='4'||c=='5')
		{
    
    
			continue;
		}
		putchar(c);
	}
	return 0;

}

getchar()
putchar()

5.9循环嵌套
输出99乘法表(左对齐 右对齐 占的长度)

#include<stdio.h>
int main() {
    
    
	
	for (int i = 1; i<= 9; i++)
	{
    
    
		for (int j = 1; j<=i; j++)
		{
    
    
			printf("%d*%d=%-4d", i, j, i*j);
		}
		printf("\n");	
	}
	return 0;
}

break:跳出所有循环
continue:结束本次的小循环

5.11利用大量例子结合实践学习编程

C语言实现突破的实例

5.12内存泄漏

操作系统允许程序自己分配内存,并且可以依据实际需求进行适应,使用了需要及时释放,内存会还给计算机,如果忘记内存释放,可能会导致内存泄漏。

猜你喜欢

转载自blog.csdn.net/BJTUYBYUAN/article/details/113372983