Lesson19 PoEdu培训第二课 C语言篇(11) 循环
文章类别: 培训笔记 0 评论

Lesson19 PoEdu培训第二课 C语言篇(11) 循环

文章类别: 培训笔记 0 评论

循环

前置代码

Alt 前置代码

程序的执行顺序

分为三种, 顺序执行, 重复执行, 选择执行.
我们之前的, 都是顺序执行, 也就是按顺序进行执行.
而我们的循环, 就是重复执行.

循环语句

// 我们的循环分为 while, for, do while 循环.

while循环, 是我们的入口条件循环.

他会根据我们的条件进行判断决定是否进入我们的循环体.
我们的关系表达式为真的时候, 循环体才会执行.
永远不会停止执行的循环叫做死循环.
while循环的条件称之为 关系表达式, 它只会返回 或者 .
在C语言中, 我们使用0来代表假, 使用!0(非0)来代表真.
在C99标准中, 专门增加了一个_Bool类型来代表我们的true 和 false.
_Bool会进行一个转换, 只存储01.
for循环, 使我们的计数循环, 他会执行规定的循环次数.
for循环的条件表达式中, 由3个表达式组成.
第一个表达式为初始化表达式, 它的作用是给条件计数种子赋值一个初值.

它可以使用 , 运算符进行扩充, 比如 for (int i = 0, j = 10; i < j; i++) { ... }
它是可以被省略的, 我们如果在for循环之外进行了初始化, 我们可以省略该语句, 但是 ; 一定要有.
比如 int i = 0; for (; i < 10; i++) { ... }
第二个表达式为条件表达式, 它的作用是跳出循环的条件, 它只会返回或者.

第三个表达式为计算表达式, 它的作用是修改计数种子, 促使循环条件的达成.

do while循环, 是我们的出口条件循环.

它也有一个关系表达式.
和while不同的是, 它可以保证我们的循环体至少能够被执行1次.

作业

完成如下程序题
#include <windows.h>

#define WINMAXIMUM 100
HWND g_hwnds[WINMAXIMUM] = { 0 };
int g_winnum = 0;

BOOL CALLBACK EnumWindowsProc(
    _In_ HWND   hwnd,
    _In_ LPARAM lParam) 
{
    char classname[MAXBYTE] = { 0 };
    GetClassNameA(hwnd, classname, MAXBYTE);
    if (strcmp("TXGuiFoundation", classname) == 0)
    {
        g_hwnds[g_winnum] = hwnd;
        g_winnum++;
    }
    return TRUE;
}

int main()
{
    EnumWindows(EnumWindowsProc, NULL);
    //每排3个窗口分4列排列

    //让所有窗口依次从左向右飞过
    
    //让所有窗口依次挨个从左向右飞过

    //让窗口排列成
    //*
    //**
    //***
    //**
    //*

    //让窗口排列成
    //                *
    //               **
    //              ***
    //               **
    //                *

    //让窗口分3行,每次每行飞入一个

    //模拟窗口反弹

    //将数组中奇数下标的窗口从下往上飞,偶数下标的窗口从上往下飞。每次都需要反弹效果

    return 0;
}

如有错误,请提出指正!谢谢.

回复