学习笔记分支和循环之C语言

目录

前言

流程控制

1-什么是流程控制

2-流程控制的分类

一.顺序执行

二.选择执行

if语句

if的范围问题

 if.....else的用法

if....else if...else的用法

if经典例子

  switch语句

break和continue

三.循环执行

for循环

for循环最简单的用法

for循环嵌套

for循环举例

while循环

与for循环进行比较

举例

do....while循环(非重点)

举例


前言

少年深知成长不是童话,梦想最是凄美
征途上是万千沟壑,峭壁累累可为了梦里的彼岸,

依旧艰险不畏孤帆,残剑,大雪纷飞,也未让理想枯萎波澜千程,

偶尔难分东西,不辨南北
心中的月亮也始终明媚
跨过千山万水,捧起风华绝代的玫瑰
少年肆无忌惮,只为理想破碎

少年无畏,青春鼎沸

既然选择了,就坚持下去,人生没有标准答案,你也不知道自己选择的是否正确,能做的就是把你

选择的做好,尽你所能做到最好,让它尽可能正确。

这是我写的第一篇学习笔记,初学c语音,笔记如果有错误各位大佬提醒下,这些是我的一些笔记

希望可以对你们有帮助

流程控制

1-什么是流程控制

程序代码执行的顺序

2-流程控制的分类

一.顺序执行

定义:代码从上往下按照顺序执行

二.选择执行

定义:某些代码可能执行,也可能不执行,有选择的执行某些代码

if语句

格式(最基本的)

//格式     if(表达式)

                       语句

//功能       如果表达式为真,执行语句

                 如果表达式为假,语句不执行

     举例

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	if (3 > 2)
		printf("AAAA\n");
	return 0;
}
/*
     if(3)也会输出
	 if(0)不会输出
	 if(0==0)会输出,因为0==0为真返回值为1
	 0为假非0为真
*/
if的范围问题

格式(无{  }的情况)

if(表达式)              //解释:if语句默认只能控制A语句执行与否

      语句A                    //          if无法控制语句B 的执行与否

      语句B                       //       可以说语句B一定会执行


举例

#include<stdio.h>
int main()
{
	if (1 > 2)
		printf("AAAA\n");
	    printf("BBBB\n");

	return 0;
}
/*
      输出结果:
	  ___________________________
	  BBBB
	  ____________________________
	  总结:if默认只能控制一个语句的执行与否
	       1>2为假AAAA不输出,下一个语句不受if控制,不管if条件为真为假怎样都会输出
*/

 格式(有{  }的情况)

if(表达式)                        //此时if可以控制语句A和语句B

 {                           //由此可见:if默认只控制一个语句的执行与否

     语句A;              // 如果想控制多个语句的执行与否,就必须把这些语句用{}括起来

     语句B;   

}                   

举例 

#include<stdio.h>
int main()
{
	if (1 > 2)//整个if为一个语句
	{
		printf("AAAA\m");
		printf("BBBB\n");
	}
	printf("CCCC\n");
	return 0;
}
//结果:CCCC
 if.....else的用法

1-if控制一个语句else也只控制一个语句

2-if...else...其中两个语句必会执行一个

3-if....else整体为一个语句

4-if...else以下printf必会执行,

不受其控制与if对齐成为新语句

格式

//格式:if(表达式)

                   A;

          else

                   B;

 举例

//输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印是偶数。
#include<stdio.h>
int main()
{
	int i = 0;
	scanf("%d", &i);
	if (i % 2 == 1)
	{
		printf("这是一个奇数\n");
	}
	else
	{
		printf("这是一个偶数\n");
	}
	return 0;
}
if....else if...else的用法

格式

//格式:if(1)                  /*

                    A;                             如1成立,执行A,如1不成立,2成立,执行B

             else if(2)                         如12同时成立执行A

                     B;                                  执行D的前提是123都b

             else if(3)

                      c;

              else

                      D;             */

 举例

//分数等级
#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	double score = 0;
	printf("请输入你的分数:");
	scanf("%lf", &score);
	if (score > 100)
	{
		printf("这是做梦!\n");
	}
	else if (score >= 90 && score <= 100)
	{
		printf("优秀\n");
	}
	else if (score >= 80 && score < 90)
	{
		printf("良好\n");
	}
	else if (score >= 60 && score < 80)
	{
		printf("中等\n");
	}
	else if (score >= 0 && score < 60)
	{
		printf("不及格\n");
	}
	else
	{
		printf("输入分数过低,不要如此自卑!\n");
	}

	return 0;
}
/*
    总结:不能写成90<=score<=100
	因为score为何值 90<=score返回的值只能为0或1
	永远<=100,无法判断score的等级
*/
if经典例子

例一  .互换两个数字

#include<stdio.h>
//互换两个数字
int main()
{
	int i = 3;
	int j = 5;
	int t;//创建临时变量
	//i = j;                  
	// j=5赋给i ,i=5
	//j = i;    10和11行无法完成交换
	//i=5,赋给j,j=5    


	//正确方法
	t = i;
	i = j;
	j = t;
	printf("i=%d,j=%d\n", i, j);

	return 0;
}

例二.对任意三个数进行排序

//对任意三个数进行排序
int main()
{
	int a, b, c;
	int t;
	printf("请输入三个整数(之间以空格分开)\n");
	scanf("%d %d %d", &a, &b, &c);
	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}
	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}
	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}
	printf("%d %d %d\n", a, b, c);
	return 0;
}

  switch语句

格式

格式

switch(表达式)

{

     case  1 :

     case 2 :

     default :
}

例子


//对任意三个数进行排序
int main()
{
	int val;;
	printf("请输入您要进入的楼层:");
	scanf("%d", &val);
	switch (val)
	{
	case 1:
		printf("一层开\n");
		break;
	case 2:
		printf("二层开\n");
		break;
	default :
		printf("没有盖这一楼层\n");
		break;


	}

	return 0;
}
break和continue

break

1-break不能直接用于if,除非if属于循环内部的语句

例子:

for(i=0;i<3;i++)

{

         if(3>2)

          braek;//break虽然是if内部的语句,但break终止的是for循环

          printf("哈哈\n");//永远不会输出

}

2-在多层switch嵌套中,break只能终止距离他最近的switch

例子:

int x = 1, y = 0,a = 0,b = 0;

switch(x)//第一个switch

{

       case 1:

          switch(y)第二个switch

              {

                       case 0:

                                a++;

                                break;//终止第二个switch
                        case1:

                                b++;

                                break;

               }

                        b=100;

                        break;终止第一个switch

         case 2: 

                        a++;

                        b++;

                        break;

}

printf("%d %d\n",a,b);

结果:1 100

continue 

用于跳过本次循环余下的语句,转去判断是否需要执行下一次循环

例一:

for(1;2;3)

{

        A;

        B;

        continue;//如果执行该语句则执行完AB就到语句3,CD不会被执行

        C;

        D;

}

例二: 

while(表达式)

{

        

        A;

        B;

        continue;//如果执行该语句则执行完AB就执行表达式,CD不会被执行

        C;

        D;

}

例三: 

do

{

        if(表达式)

       {

                 A;

                continue;//if成立跳到 while表达式

       }

}while(表达式);

三.循环执行

定义:某些代码会被重复执行

for循环

格式

for(1;2;3)

        语句A;//4

//执行顺序:1>2>4>3>2>4>3......

//1只执行一次,3是循环的终点

 

for循环最简单的用法

求1-100之间所有的奇数和

#include<stdio.h>
int main()
{
	int i;
	int sum=0;
	for (i = 0; i < 100; i += 2)
	{
		sum += 1;

	}
	printf("sum=%d\n", sum);
	return 0;
}

for循环嵌套

格式

for(1;2;3)           

        for(4;5;6)

        语句A;//7

        语句B;//8

1-该格式共两个语句,1-3行为第一句,第四行为第二句,因为for循环只控制一条语句

2-执行顺序:可以理解为1>2成立执行4,5成立执行7,然后到6,再判断5,5成立,执行

7,再到6,5不成立执行3,再判断2,2成立执行4,再判断5,5成立,执行7,再到6,再

判断5,5不成立执行3,再判断2,2不成立,循环结束,到8

for循环举例

计算1+1/2+/3+....+1/100的和

#include<stdio.h>
int main() 
{
	int i = 0;
	float sum = 0;
	for (i = 1; i <= 100; i++)
	{
		sum += 1.0/ i;
	}
	printf("sum=%f\n",sum);
	return 0;
}

while循环

格式

while(表达式)

             语句;//默认只控制一个语句

与for循环进行比较

求1+2+···+100(用for实现) 

#include<stdio.h> 
int main( )
{
    int sum=0;
    int i=0 ; 
    for(i=1j i<=100;i++)
{
    Sum+=i;    
}


   printf(" sum=%d\n",sum); 
   returno 0;
}

 用while

#include<stdio.h>
int main()
{
	int i = 0;
	int sum = 0;
	while (i < 101)
	{
		sum += 1;
		i++;
	}
	printf(" sum=%d\n",sum); 
	return 0;
}

for和while可以互相转换

但for的逻辑性更强,更不容易出错,推荐使用for 

举例


从键盘输入一个数字,如果该数字是回文数.则返回 Yes.否则返回No.
回文数:正着写倒着写都一样.
比如:121 12321都是回文数

#include<stdio.h>.
int main()
{
	int val = 0;
	int m = 0;
	int sum = 0;
		printf("请输入你需要判断的数:");
	scanf("%d", &val);
	m = val;
	while (m)
	{
		sum = sum * 10 + m % 10;
			m /= 10;
	}
	if (sum == val)
		printf("Yes!\n");

	else
		printf("No!\n");
		
		return 0;
}

do....while循环(非重点)

格式

do

{

    

}while(表达式);

举例

判断水仙花数

#include <stdio.h>
int main (void)
{
	int i = 100;
	int a,b,c;
	do
	{	// 拆解百位十位各位
		a = i/100;		//百位
		b = i/10%10;	//十位
		c = i%10;		//各位
		if(a*a*a+b*b*b+c*c*c == i)
		{
			printf("水仙花数:%d\n",i);
		}
		i++;
	}
	while (i<=999);
	return 0;
}

感谢观看,希望能对你有所帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值