C++程序设计:循环详解与执行次数分析

需积分: 15 1 下载量 72 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"C++³ÌÐòÉè¼Æ¡ª¡ªÌ·ºÆÇ¿" 这篇资源主要讨论的是C++编程中的循环结构及其执行次数的问题。在C++编程中,循环是程序控制流的重要组成部分,用于重复执行一段代码直到满足特定条件为止。 在第一个例子中,给出的循环是: ```cpp for ( i=0, k= -1; k=1; i++, k++) cout << "****\n"; ``` 这个循环的初始化部分`i=0, k=-1`设置初始值,条件部分`k=1`是一个赋值表达式,意味着每次循环前`k`都会被赋值为1,因此条件总是为真,循环会无限执行,除非有外部中断。循环体内的代码`cout << "****\n"`会在每次迭代时打印四颗星,所以输出将会是无限的星号序列,无法预知具体的循环次数。 第二个例子是: ```cpp for (i=0, x=0; i<=9 && x!=876 ; i++) cin >> x; ``` 这里的循环有双重条件:`i<=9` 和 `x!=876`。循环开始时,`i`和`x`都初始化为0。每次循环,`i`增加1,`x`从输入获取新的值。循环会一直执行,直到`i`超过9或`x`等于876。如果用户连续输入使得`x`始终不等于876,循环最多执行10次(因为`i`从0到9)。另一方面,如果用户在输入过程中使`x`等于876,循环将立即停止,所以循环最少可能只执行一次。 C++语言,源自C语言,由B语言发展而来,以其结构化特性、强大的功能、高效的执行效率以及良好的可移植性而闻名。C++在C的基础上增加了面向对象编程的特性,使得它可以更方便地处理复杂的数据结构和类的继承。虽然C++的语法相对自由,对于初学者来说可能较为困难,但它提供的丰富运算符和灵活性使得程序员能够设计出高效且通用的代码。 在学习C++时,理解循环的执行逻辑至关重要,因为循环经常用于处理大数据集、进行重复任务和响应用户输入等场景。同时,需要注意的是,不正确的循环控制可能导致无限循环,这在实际编程中应当避免。通过熟练掌握C++的循环机制,程序员可以编写出更加高效和可靠的代码。
2023-07-08 上传

int main(void) { const unsigned char *point; u16 i=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ // uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú // KEY_Init(); //°´¼ü³õʼ»¯ AT24CXX_Init(); //IIC³õʼ»¯ OLED_init(); point= &picture_tab[0]; TIM_OCInitTypeDef TIM_OCInitStructure; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //LED¶Ë¿Ú³õʼ»¯ TIM3_Int_Init(4999,7199);//10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½5000Ϊ500ms TIM4_PWM_Init(10000-1,72-1); //72M/72=1MHz¼ÆÊýƵÂÊ,ÖØ×°ÔØÖµ while(1) { OLED_ShowString(0,30,"21221054",16); OLED_ShowString(0,15,"2023/5/18",16); OLED_ShowChinese(0,0,0,16,1); OLED_ShowChinese(16,0,1,16,1); OLED_ShowChinese(32,0,2,16,1); delay_ms(1000); OLED_Refresh_Gram(); //¸üÐÂÏÔʾµ½OLED if(++i > 3) { LED1=!LED1;//ÌáʾϵͳÕýÔÚÔËÐÐ i=0; } while(1) { u16 u16tmp; u16tmp += 500; if(u16tmp > 10000) u16tmp=0; //³õʼ»¯TIM4 Channe3 PWMģʽ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆģʽ2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜ TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔ¸ß TIM_OCInitStructure.TIM_Pulse = u16tmp; TIM_OC3Init(TIM4, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM4 OC3 LED2=!LED2; //LED3=!LED3; delay_ms(300); } } }这段代码问题如下:declaration may not appear after executable statement inblock,TIM OCINITTYPEDEF TIM OCINITSTRUCTURE,请修改这个问题

2023-06-09 上传