目录
一、if - else语句
1.语法结构
if语句可以用来判断表达式是否成立,如果成立执行if下的代码,不成立则执行else下的代码
if(表达式)
{
xxx执行的程序语句
}
else
{
xxx
}
在语句中真的返回值为1,而假的返回值为0
举个例子:
if(x<5)
{
return 1;
}
else
{
return 0;
}
假如输出一个4,那麽满足if的条件;执行return 1,返回值为1;反之则执行else,返回值为0
2.多重判断语句
else if表示有多个判断结果,至少有三种情况,才会用到。
举个例子:
比较两个数的大小;
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
if(a==b)
{
printf("%d=%d\n",a,b);
}
else if(a>b)
{
printf("%d>%d\n",a,b)
}
else
{
printf("%d<%d\n",a,b)
}
return 0;
}
通过分析题目,我们知道比较两个数的大小有三种情况,根据代码我们可以看出,利用了else if来进行判断。
3.嵌套使用
if语句中还可以包含一个或者多个 if 语句,此种情况称为 if 语句的嵌套;一般用于处理复杂多样的条件判断。
举个例子:
判断三个数中的最大数
#include <stdio.h>
int main()
{
int a,b,c;
int max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
if(a>c)
{
max=a
}
else
{
max=c
}
}
esle
{
if(b>c)
{
max=b
}
else
{
max=c
}
}
return 0;
}
具体的流程如图:
二、for循环
1.语法结构
for循环是编程语言中一种循环语句,而循环条件由循环体及循环的判定条件两部分组成,其表达式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
举个例子:
打印1-10
#include <stdio.h>
int main()
{
int i;
for(i=1;i<=10;i++)//从i=1开始每执行一次循环体,跳回for循环,直到跳出
{
printf("%d",i);
}
return 0;
}
2.嵌套使用
主要分为外循环和内循环,一般使用的都为双重循环,很少使用多重循环。
举个例子:
表示九九乘法表
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)#外循环
{
for (j = 1; j <= i; j++)#内循环
printf("%d*%d=%d ", i, j, i * j);
puts(" ");
}
return 0;
}
先执行外循环,再执行内循环。
此处的外循环相当于行数,内循环则是列数,因为列数要参考行数来定,所以此处列数应小于行数
3.实操题目
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
#include <stdio.h>
int main()
{
int i;
double sum1 = 0;
double sum2 = 0;
double sum;
for (i = 1; i <= 100; i += 2)
{
sum1 += 1.0 / i;
}//计算sum1的值,即奇数位的值的和
for (i = 2; i <= 100; i += 2)
{
sum2 += 1.0 / i;
}//计算sum2的值,即偶数位的值的和
sum = sum1 - sum2;
printf("%f", sum);
return 0;
}
写一个代码打印1-100之间所有3的倍数的数字
#include <stdio.h>
int main()
{
int a, i;
scanf_s("%d", &i);
for (a = 3; a < i; a++)
{
if (a % 3 == 0)
printf("%d", a);
printf(" ");
}
return 0;
}//同时利用了for和if进行嵌套
写一个代码:打印100~200之间的素数
//思路:
素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数,具体方式如下
#include <stdio.h>
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)//打印100-200,100肯定不是素数,所以从101开始
{
//判断是否为素数
int j = 0;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
break;
}
}
if (i == j)
{
printf("%d ", i);
}
}
return 0;
}
三、while循环
1.语法结构
while循环是一种基本的循环结构,当满足条件时,进入循环,不满足,则跳出循环。它的基本语法结构如下:
while(判定条件)
{
循环体;
}
2.实操题目
一个整数从零开始递增
#include <stdio.h>
int main(void)
{
int i, a;
printf("a"); scanf("%d", &a);
i = 0;
while (i <=a)
printf("%d ", i++);
return 0;
}
一个整数倒数递减到零
#include <stdio.h>
int main()
{
int a;
printf("a"); scanf("%d", &a);
while (a >= 0)
{
printf("%d ", a);
a--;
}
printf("\n");
return 0;
}
针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。
#include <stdio.h>
int main() {
int a, b, c;
while (scanf("%d %d %d", &a, &b, &c) != EOF)//能够多次输出
{
if (a + b > c && a - b < c)//根据两边之和大于第三边,两边之差小于第三边
{
if (a == b && b == c)
puts("Equilateral triangle!");
else if (a == b || a == c || b == c)
puts("Isosceles triangle!");
else
puts("Ordinary triangle!");
}
else
{
puts("Not a triangle!");
}
}
return 0;
}
四、do - while循环
1.语法结构
do-while 循环是 while 循环的变体。在检查while条件是否为真之前,该循环首先会执行一次do之内的语句,然后在while内检查条件是否为真,如果条件为真的话,就会重复do-while这个循环,直至while为假。
do
{
循环体;
}while(表达式);
循环体可以为单条语句,也可以为多条语句。
2.实操题目
递增偶数
#include <stdio.h>
int main(void)
{
int i, a;
printf("a"); scanf("%d", &a);
i = 2;
do {
printf("%d ", i);
i += 2;
}
while (i < a);
return 0;
}
逆向显示正整数
#include <stdio.h>
int main()
{
int a;
do {
printf("请输入一个正整数:");
scanf("%d", &a);
if (a <= 0)
puts("\a请不要输入非正整数");
} while (a <= 0);
printf("输入的数逆向显示的数为");
while (a > 0)
{
printf("%d", a % 10);//首先会得到最后一位,再除以十,再次得到下一位。以此类推。会得到逆向数。
a /= 10;
}
puts("。");
return 0;
}
循环判断输出的数的奇偶性
#include <stdio.h>
int main(void)
{
int retry;
do {
int a;
printf("a"); scanf("%d", &a);
if (a % 2)
puts("这个数为奇数");
else
puts("这个数为偶数");
printf("要重复一次吗?【yes···0/no···9 】:");
scanf("%d", &retry);
} while (retry == 0);
return 0;
}
五、switch语句
1.语法结构
switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。
switch ( 变量表达式 )
{
case 常量1 :语句;break;
case 常量2 :语句;break;
case 常量3 :语句;break;
...
case 常量n:语句;break;
default :语句;break;
}
2.使用规则
- 只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
- switch的参数类型不能为实型 。
- case标签必须是常量表达式(constantExpression),如42或者'4'。
- case标签必须是唯一性的表达式;也就是说,不允许两个case具有相同的值等等。
3.实操题目
判断奇偶数
#include <stdio.h>
int main(void)
{
int a;
printf("a"); scanf("%d", &a);
switch (a % 2)
{
case 0:puts("该数为偶数"); break;
case 1:puts("该数为奇数"); break;
}
return 0;
}
判断月份是哪一季节
#include <stdio.h>
int main()
{
int month;
printf("month"); scanf("%d", &month);
switch (month)
{
case 1:printf("%d月为春季\n",month); break;
case 2:printf("%d月为春季\n", month); break;
case 3:printf("%d月为春季\n", month); break;
case 4:printf("%d月为夏季\n", month); break;
case 5:printf("%d月为夏季\n", month); break;
case 6:printf("%d月为夏季\n", month); break;
case 7:printf("%d月为秋季\n", month); break;
case 8:printf("%d月为秋季\n", month); break;
case 9:printf("%d月为秋季\n", month); break;
case 10:printf("%d月为冬季\n", month); break;
case 11:printf("%d月为冬季\n", month); break;
case 12:printf("%d月为冬季\n", month); break;
default:printf("%d月不存在\n");
break;
}
确定switch语句动作
int main(void)
{
int a;
printf("a"); scanf("%d", &a);
switch (a)
{
case 1:puts("A"); printf("B"); break;
case 2:puts("C"); break;
case 4:puts("D");
case 5:puts("E"); puts("F"); break;
case 6:
case 7:puts("G"); break;
default:puts("H"); break;
}
return 0;
}
//不在上面的数字会输入default所输出的值;在上面但是没有break的往下走一直到break;
4.嵌套使用
switch语句可以嵌套
#include <stdio.h>
int main()
{
int a,b;
switch(a)
{
case 1 :
case 2 :
switch(b)
{
case 1:
case 2:
default:
}
case 3:
}
return 0;
}
先执行外部的switch语句,再执行内部