C语言支持最基本的三种程序运行结构
顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生转跳
选择结构:依据是否满足条件,右选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
1.if语句
if(表达式)
{
语句1;
}
表达式为真 才会执行语句1;
案例:
#include<stdio.h>
void test01()
{
int num = 0;
printf("请输入一个整型数据:");
scanf("%d",&num);
//判断能被2整除
if(num%2 == 0)
{
printf("可以被2整除\n");
}
}
int main(int argc,char *argv[])
{
test01();
return 0;
}
2.如果项目只有两种结果,且不会同时出现,请选择 if else
if(表达式)
{
语句1;
}
else
{
语句2;
}
表达式为真执行语句1,否则执行语句2
#include<stdio.h>
void test01()
{
int num = 0;
printf("请输入一个整型数据:");
scanf("%d",&num);
//判断能被2整除
if(num%2 == 0)
{
printf("余数为0,可以被2整除\n");
}
else
{
printf("余数为1,不能被2整除\n");
}
}
int main(int argc,char *argv[])
{
test01();
return 0;
}
3.如果一个项目有多个结果 且不同时出现,if .......else if ......else if ......else
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else //可省略
{
语句3;
}
只有表达式1为真 执行语句1,只有表达式2为真 执行语句2, 所有表达式都为假 才执行语句n
案例:
#include<stdio.h>
void test01()
{
int num = 0;
printf("请输入一个整型数据:");
scanf("%d",&num);
//判断num对3的余数 0 1 2
if(num%3 == 0)
{
printf("余数为0\n");
}
else if(num%3 == 1)
{
printf("余数为1\n");
}
else if(num%3 == 2)
{
printf("余数为2\n");
}
}
int main(int argc,char *argv[])
{
test01();
return 0;
}
注意:只有前面的条件不满足,才能判断下一个条件。 如果前面的条件满足,后面的条件不管真假 都不会执行。
4.一个项目有多个结果,不确定 是否同时 出现。
if(表达式1)
{
语句1;
}
if(表达式2)
{
语句2;
}
if(表达式3)
{
语句3;
}
每个if都是独立的。
作业:
键盘输入一个数,能否被3和7同时整除
#include<stdio.h>
void test02()
{
int num = 0;
printf("请输入一个int类型数据:");
scanf("%d",&num);
if( (num%3 == 0) && (num%7 == 0))
{
printf("可以被3和7整除。\n");
}
else
{
printf("不能被3和7整除。\n");
}
}
int main(int argc,char *argv[])
{
test02();
return 0;
}
switch 选择语句
switch(表达式)
{
case 值1: //不能是实型、字符串。只能是数值
语句1;
break;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
default: //可以省略
语句n;
break;
}
案例:
#include<stdio.h>
void test03()
{
int data = 0;
printf("请输入一个int数据:");
scanf("%d",&data);
switch(data%3)
{
case 0:
printf("余数为0\n");
break;
case 1:
printf("余数为1\n");
break;
case 2:
printf("余数为2\n");
break;
}
}
int main(int argc,char *argv[])
{
test03();
return 0;
}
案例:省略break;的情况
#include<stdio.h>
void test04()
{
char ch = 0;
printf("请输入你的方向:wasd\n");
ch = getchar();
switch(ch)
{
case 'w':
case 'W':
printf("向上移动\n");
break;
case 'a':
case 'A':
printf("向左移动\n");
break;
case 's':
case 'S':
printf("向下移动\n");
break;
case 'd':
case 'D':
printf("向右移动\n");
break;
}
}
int main(int argc,char *argv[])
{
test04();
return 0;
}
作业:键盘输入1~7的数,用switch判断今天是星期几。
#include<stdio.h>
void test05()
{
int date = 0;
printf("请输入一个int数据:");
scanf("%d",&date);
switch(date)
{
case 1:
printf("今天星期一\n");
break;
case 2:
printf("今天星期二\n");
break;
case 3:
printf("今天星期三\n");
break;
case 4:
printf("今天星期四\n");
break;
case 5:
printf("今天星期五\n");
break;
case 6:
printf("今天星期六\n");
break;
case 7:
printf("今天星期七\n");
break;
default:
printf("请输入有效数字!\n");
break;
}
}
int main(int argc,char *argv[])
{
test05();
return 0;
}
|