一、内容提要
1、if...else 语句;
2、switch 语句。
二、内容详解
1、if...else 语句的三种表示
1、if(表达式 1)
{ 语句块 1 }
2、if(表达式 1)
{ 语句块 1 }
else
{ 语句块 2 }
3、if(表达式 1)
{ 语句块 1 }
else if
(表达式 2)
{ 语句块 2 }
......
else if
(表达式 n)
{ 语句块 n }
else
{ 语句块 n+1 }
2、switch 语句。
switch(整型表达式)
{
case 常量表达式 1:
语句块 1;
break;
case 常量表达式 2:
语句块 2;
break;
......
case 常量表达式 n:
语句块 n;
break;
default:
语句块 n+1;
break;
}
注意事项: 1、switch 中的整型表达式支持,bool,char,int,long,long long 和枚举类型,不 支持 float,double,字符串等数据类型。
2、case 中必须使用常量表达式如 1,1+2 等,不能使用变量 a。
3、switch 进入点,当 switch 中的变量和 case 中的值相同时进入,case 标签 的顺序可以任意,不影响程序结果。
4、switch 退出时机,当 switch 进入到相应的 case 语句后,则从上往下依次 执行,只有遇到 break 或者整个 switch 执行完才结束。
分支结构 :if else ;switch(不重要)
if(表达式)//如果
{ 语句块1 }
else //否则
{ 语句块2 }if()
{}
else if()
{}
else if()
{}
.....
else
{}
真:非0
假:0
=:赋值,将右边赋值给左边
==:等号
/:注意整除,整数/整数,结果为整数(去尾)
^:按位异或 (相同的位不一样才为1)
12: 0000 1100
13: 0000 1101
12^13: 0000 0001->1
():用于函数或者提升优先级
sqrt:开根号if(星期一)
{ 教1上自习 }
else
{
if(星期二)
{ 教2上自习 }
else
{
if(星期三)
{ 图书馆上自习 }
else
{ 上自习 }
}
}if(星期一)
{ 教1上自习 }
else if(星期二)
{ 教2上自习 }
else if(星期三)
{ 图书馆上自习 }
else
{ 上自习 }浮点数:不精确(误差)
#include <stdio.h>
//输出1~1000的所有完数
int main()
{
int sum = 0;//因子之和
for(int x=1;x<=1000;x++)
{
sum = 0;
for (int i = 1; i < x; i++)
{
if (x % i == 0)//i是x的因子
{
sum += i;
}
}
if (x == sum)
{
printf("%d是完数\n", x);
}
}
return 0;
}
/*
//输入一个整数n判断其是否为完数
int main()
{
int n;
int sum = 0;//因子之和
scanf_s("%d",&n);
for (int i = 1; i < n; i++)
{
if (n % i == 0)//i是n的因子
{
sum += i;
}
}
if (n == sum)
{
printf("%d是完数\n",n);
}
return 0;
}
*/
/*
int main()
{
double high = 100;//当前的高度
double sum = 100;//走过的总高度
for (int i = 1; i < 10; i++)
{
high /= 2;
sum += 2 * high;
}
printf("%f\n",sum);
//for (int i = 1; i <= 10; i++)
//{
// high /= 2;//high = high/2;
//}
//printf("%f\n",high);
return 0;
}
*/
/*
int main()
{
int n, m;
int tmp = 1;
scanf_s("%d%d", &n, &m);//获取两个值
//从后往前遍历,找到的第一个公约数即可
for (int i = n; i >= 1; i--)//10,15
{
if (n % i == 0 && m % i == 0)
{
tmp = i;
break;//跳出一层循环
}
}
printf("%d\n",tmp);
return 0;
}
*/
/*
//从键盘获取两个值,n和m,求它俩的最大公约数
int main()
{
int n, m;
int tmp = 1;
scanf_s("%d%d",&n,&m);//获取两个值
for (int i = 1; i <= n; i++)
{
if (n % i == 0 && m % i == 0)//公约数
tmp = i;
}
printf("%d\n",tmp);
return 0;
}*/
/*
//求10的阶乘
int main()
{
int sum = 1;
for (int i = 1; i <= 10; i++)
{
sum *= i;
}
printf("%d\n", sum);
return 0;
}
*/
/*
//1+2+3+4+5+...+100
int main()
{
int sum = 0;
int i;
for (i = 1; i <= 100; i++)
{
sum += i;//sum = sum + i;
}
printf("%d\n",sum);
return 0;
}
*/
/*
int main()
{
int i;
for (i = 0, printf("#1,%d\n", i);
printf("#2,%d\n", i), i < 3;
i++, printf("#3,%d\n", i))
{
printf("语句块1,%d\n",i);
}
// for (int i = 0; i < 3; i++)
//{
// printf("%d\n",i);//0,1,2
//}
return 0;
}
*/
/*
//输入一个数字,判断是否能被3和5整除
int main()
{
int n;
scanf_s("%d",&n);//从键盘获取一个数字
if (n % 3 == 0 && n % 5 == 0)//不能使用/
{
printf("%d能整除\n",n);//输出到屏幕
}
else
{
printf("%d不能整除\n",n);
}
return 0;
}
*/