C语言基础 switch分支 三种循环

switch

多分支情况

switch(整形表达式)
{
	case 整形常量表达式1: //5
	语句块1;
	break;
	case 整形常量表达式2: //6
	语句块2;
	break;
	case 整形常量表达式3: //7 
	语句块3;
	break;
	
	default:
	语句块n;

}

整形表达式 计算下来的结果 ,会和case后面的 整形常量表达式 进行等值比较。 如果值相等则该 case 对应的语句块,就会被执行 ,直到遇到break。 

break; 停止,断开。在switch 中,执行遇到break ,意味 switch 分支结束。

default ,可以选。 如果有的话,switch 在匹配的过程中,如果case 都没有匹配成功,则执行default
对应的语句。 一般放在最后。

1) switch 后面必须是一个整形表达式

2) case 后面 整形的常量 ,不能是变量,或表达式

3)switch 的整形表达式 和 case 后面 整形的常量 ,做等值比较。 如果相等执行对应的case。 直到break 停止。 如果都没有匹配中,执行default;

流程框图

循环控制

代码执行的时候,有多次执行同一段代码需求。

事先执行需要运行几次 for

未知执行次数的话 while

循环三要素:

1) 循环控制变量 需要初始化

2) 需要检测循环变量 ,是否继续循环

3)循环中,需要包含控制变量 变化的语句 ++,--

while

1.while的使用

while(表达式)
{
	循环体;
}

表达式 值为一个逻辑值 1 ture  0 fasle
循环体; 代码会执行多次

1 对表达式求值 ,如果为 1(真) ,则执行循环体 。否则 ,循环结束。
2 执行循环体 循环的代码
3 执行 1

循环体 中,需要包含 使用循环慢慢趋势于结束的变量(循环体控制变量,++,--)
while(表达式)后 不要加分号。

2.死循环

//循环会一直运行  
while(1)
{
   循环体;
}

for

for(表达式1;表达式2;表达式3)
{
    循环体;
}
表达式1 ,变量初始化,或者循环运行起来前,需要初始化的变量
表达式2 ,决定循环是否会继续运行。如果为真,循环执行,否则循环停止
表达式3 ,对循环控制变量,进行改变的地方(++,--)

执行的流程
1.执行表达式1  ,对控制变量初始化 。 只会走一次。
2.对表达式2求值,如果为真,执行循环体。否则结束
3.执行循环体代码
4.执行表达式3, 对控制变量 ++,--
5.跳 第2步



死循环形式
for(;;)   分号不可以省略
{

  循环体;

}

双层循环

int i =0;
int j = 0 ;
for(j=0;j<3;j++) // 外层
{

	for(i=0;i<5;i++)// 内层循环
	{
	循环体;
	}
}

外层循环 j++ 一次 ,则内层循环 执行5次

9 * 9 乘法表
int i = 0 ;
    int j = 0 ;
    for(j = 1 ;j <=9;j++)// row  
    {
        
        for(i=1;i<=j;i++)
        {
            printf("%d*%d=%d ",i,j,j*i);
        }
       // printf("\n");
       puts(" ");
    }

goto

无条件调整 。

goto 只能在 同一个函数内部 调整。 goto 相当与 汇编中的 JMP指令。

在应用层程序编程中,禁止使用。

在linux 内核编程中, 错误处理 ,用的多。

int  main()
{
    int i = 0 ;
    int sum = 0;
    //标号
loop:    
    sum+=i;
    i++;
    if(i<=10)
    {
        goto loop;
    }
    else  
    {
        //goto end 
    }
    printf("sum is %d\n",sum);
end:
    return 0;
}

do ... while()

do
{
    循环体;
}while(表达式);

循环体至少执行一次。  while() 后面的分号,不可省略。否则语法报错。

1 执行循环体
2 表达式求值 ,如果真,则执行循环体。否则,循环终止。


int main()
{
    int i = 0 ;
    int sum = 0 ;
    do 
    {
        sum+=i;
        i++;
    }while(i<=10);

    printf("sum is %d\n",sum);
}

循环辅助控制

continue; //继续, 跳过本次循环

1 跳过本次循环

2 在循环过程中,需要屏蔽其中某几次循环

 for(i=0;i<10;i++)
    {
    
        if(3==i || 5==i || 7==i )
        {
            continue;// 在循环过程中,i如果是3,5,7  ,直接执行下一次循环
        }
        printf("i is %d\n",i);
    }
break;//跳出循环,提前结束循环

1 跳出当前循环或switch

2 如果不希望循环继续,调用break

for(i=1;i<10;i++)
    {
    
        if(3==i || 5==i || 7==i )
        {
            break; //提前结束循环
        }
        printf("i is %d\n",i);
    }
    
 printf("end...\n");

内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值