结语里有所有演示代码合集。
while函数
形如上:
while函数的使用
while后面()里是判断条件:
先判断,再执行。
控制变量是否进入循环中,满足条件才可以进入,反之出来。
如例题:
i初始化为0;判断条件是,i<=50;符合条入。
先执行打印 i 的函数,再给 i 加一。
执行完所有内容后,再次回到判断条件,再次判断,是否进入while函数。
while函数与if函数的结合
选择打印
这里进入while语句中,执行内容中,包括一个 if 语句。
先记入 if 语句的判断,符合条件进入。
如例题:
只会在0~50中打印5的倍数的数字。
注意:循环语句中,必须要有出循环的条件,否则会陷入死循环,导致代码错误。
(入本题,如果不加入i++;则会无法出循环。)
求最值
进入循环后,先输入数值。然后 if 语句会判断大小。
并把比初始最大值还大的值,赋给max;
并把比初始最小值还小的值,赋给min;
与数组结合
会像这样,从两边逐个打印出来:Hello World。
这里的strlen函数是计算数组总长度,减一是因为数组下标是从0开始的。
Sleep函数效果是使显示结果,以每一秒出一次的频率显示,便于观察函数的动态变化。
do...while函数
形如上:
do...while语句和while语句使用方法类似。
先执行,后判断。
一般我们选用while语句,很少使用do..while。此处只做认识,不做详细说明。
for函数
使用最广泛的循环函数。
for函数的使用
形如上:
for(变量起始值;判断条件;每次循环变量的变换形式)
{
函数内容;
}
相当于while函数的括号里多了两个东西。将变量初始值和变量改变形式放在一起。
优点:便于观察变量情况,位置集中。便于修改,调整。
for函数的嵌套,乘法表的生成
for函数可以套用。同理:if函数;while函数;do...while函数;等等都可以套用。但是需要理清思路,否则套用会很痛苦。
形如上:
外层for函数,控制总共有几行。
内层for函数,控制总共有几列。
注意:内层函数的判断条件是(q<=i)。观察乘法表可知,i 为几时,就有几列,故,这里判断条件不再是单一与常数判断。而是与变量判断!
乘法表的形式变换
形如上:
这里就多了打空格的步骤。我选用while发空格。
事先数好空格数量。可以在草纸上理清逻辑,在写代码。
结语
有愿意讨论的,欢迎私信我。
C语言是有趣的,严谨的。希望遇到志同道合的朋友,一同前行!
int main()
{
int i = 0;
do
{
printf("%d ", i);
i++;
} while (i <= 50);
return 0;
}
int main()
{
int i = 0;
int n = 0;
int max = 0;
int min = 0;
while (i <4)
{
scanf("%d", &n);
if (n>max)
{
max = n;
}
if (n < min)
{
min = n;
}
i++;
}
printf("max=%d\n", max);
printf("min=%d\n", min);
return 0;
}
int main()
{
char arr1[] = "Hello World";
char arr2[] = "###########";
int lift = 0;
int right = strlen(arr2) - 1;
while (lift <= right)
{
arr2[lift] = arr1[lift];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);
system("cls");
lift++;
right--;
}
printf("%s\n", arr2);
return 0;
}
int main()
{
int i = 0;
for (i = 1; i <= 10; i += 1)
{
printf("%-2d ", i);
printf("hehe\n");
}
return 0;
}
int main()
{
int i = 0;
int n = 0;
scanf("%d", &n);
int q = 0;
for (i = 1; i <= n; i++)
{
for (q = 1; q <= i; q++)
printf("%d*%d=%2d ", q, i, q * i);
printf("\n");
}
return 0;
}
int main()
{
int i = 0;int m = 8;int q = 0;
int n = 0;int w = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
w = 0;
while (w < (7 * m))
{
printf(" ");
w++;
}
m--;
for (q = i; q > 0; q--)
{
printf("%2d=%d*%d ", q * i, i, q);
}
printf("\n");
}
return 0;
}