前言
一、for语句
循环的基本结构
for(表达式1;表达式2;表达式3)
表达式1:循环初始化表达式
表达式2:循环条件表达式
表达式3: 循环调整表达式
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n1 = 0;
for (n1; n1 < 10;n1++)
{
printf("%d\n", n1);
}
return 0;
}
运行如下:
也可以把int n1 = 0写入()中
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
for (int n1 = 0; n1 < 10;n1++)
{
printf("%d\n", n1);
}
return 0;
}
练习
写一个程序,判断一个是是否为素数
#define _CRT_SECURE_NO_WARNINGS
#include<stdbool.h>
#include <stdio.h>
int main()
{
int a, i;
bool flag = 1;
printf("请输入一个数:");
scanf("%d", &a);
for (int i = 2; i < a / 2; i++)
{
if ( a % i == 0)
{
flag = 0;
}
}
if (flag)
{
printf("%d为素数", a);
}
else
{
printf("%d不为素数", a);
}
return 0;
}
代码主要分为两部分:
1.循环部分
如果没有余数,被整除,他就不是素数,(是)或(不是)使用一个bool flag = 1为真
for (int i = 2; i < a / 2; i++)
{
if ( a % i == 0)
{
flag = 0;
}
}
2.使用bool函数 ,进行是否的选择
在整个里用没有出现 0或1
if (flag)//这里flag = 1
{
printf("%d为素数", a);
}
else
{
printf("%d不为素数", a);
}
补充:
bool是在C99标准中引入的类型,bool是专门用来表示真假的类型(即:bool类型只有两种情况true或false,也就是真或者假,没有第三种情况)。在引用bool类型前需要引用头文件<stdbool.h>。
例如下面:
int main()
{
bool x = true;
if (x)
{
printf("hello\n");
}
return 0;
}
注;判断!x,就是先判断x是true还是false,然后取反即可。
回到正题
当为for(;;)是可以等价为
其意为永久循环,比如说写一个一直刷小怪的代码。
在for()语句中,表达式1中可以同时给多个变量赋值,但要用“,”隔开
并且C99新规定在表达式一中可以定义新变量:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
for (int i = 0, a = 10; i < a; i++, a--)
{
printf(" % d\n", i);
}
return 0;
}
结果还是一样
二、for()的嵌套
代码如下(示例):
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, s;
for (a = 0;a < 3; a++)
{
for (s = 0; s < 3; s++)
{
printf("a=%d s=%d\n", a, s);
}
}
return 0;
}
2.写一个99乘法表
先观察乘法表
发现第一行有一列,第二行用两列。。。。。当两数相等时到下一循环。且在每一次循环结束后还要换行
代码如下(示例):
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, s;
for (a = 1;a <= 9; a++)
{
for (s = 1; s <= a; s++)
{
printf("%d*%d=%-2d ", a, s,a*s);
}
putchar('\n');
}
return 0;
}
注:putchar在此处的用法
1.putchar在此处的用法:在C语言中,putchar函数与getchar函数类似,它们两个常常搭配使用。
2.同时putchar函数与printf函数又很相似,但是putchar函数每次只能输出单个字符,而printf函数每次既能输出单个字符,也能输出字符串,printf函数无疑是新一代的后浪,功能比前浪更加强大。
①当putchar函数单独使用时
#include<stdio.h>
int main()
{
char a,b,c;
a = 'A';
b = 'B';
c = 'C';
putchar(a);//每次只能输出单个字符,我的评价是太逊啦!
putchar('\n');//'\n'是一个字符
putchar(b);
putchar('\n');
putchar(c);
putchar('\n');
return 0;
}
输出:
在做输出换行时不能用printf替代