一、if语句
二、switch语句
一、if语句
if语句的语法结构:
1、
if (表达式)
语句;
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age > 18)
printf("成年人");
return 0;
}
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if ("n>0")
printf("n is greater than 0");
return 0;
}
2、
if (表达式)
语句1;
else
语句2;
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年");
else
printf("成年");
return 0;
}
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n > 0)
printf("n is greater than 0");
else
printf("n is not greater than 0");
return 0;
}
3、
if (表达式1)
语句1;
if (表达式2)
语句2;
else
语句3;
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年");
else if (age > 18 && age < 60)
printf("青年");
else
printf("老年");
return 0;
}
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n > 0)
printf("n is greater than 0");
else if (n == 0)
printf("n is equal to 0");
else
printf("n is less than 0");
return 0;
}
悬空else:else与离它最近的if配对
练习题
1、判断数是否为奇数
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (0 == n % 2)
printf("n不是奇数");
else
printf("n是奇数");
return 0;
}
2、输出1到100之间的奇数
#include <stdio.h>
int main()
{
int n = 0;
for (n = 1; n <= 100; n++)
{
if (1 == n%2)
{
printf("%d ", n);
}
}
return 0;
}
#include <stdio.h>
int main()
{
int n = 1;
while (n <= 100)
{
printf("%d ", n);
n += 2;
}
return 0;
}
3、
打印1到100之内所有三的倍数
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 100)
{
if (0 == i % 3)
{
printf("%d ", i);
i++;
}
else
{
i++;
}
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 3;
while (i <= 100)
{
printf("%d ", i);
i += 3;
}
return 0;
}
4、打印闰年1000到2000年
#include <stdio.h>
int main()
{
int i = 1000;
for (i = 1000; i <= 2000; i++)
{
if (0 == i % 4)
printf("%d ", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 1000;
while (i <= 2000)
{
printf("%d ", i);
i += 4;
}
return 0;
}
5、确定一个数的位数(最多不超过4)
#include <stdio.h>
int main()
{
int i = 0;
printf("Enter a number: ");
scanf("%d", &i);
if (i >= 0 && i <= 9)
printf("The number %d has 1 digits.", i);
else if (i >= 10 && i <= 99)
printf("The number %d has 2 digits.", i);
else if (i >= 100 && i <= 999)
printf("The number %d has 3 digits.", i);
else if (i >= 1000 && i <= 9999)
printf("The number %d has 4 digits.", i);
return 0;
}
6、输入24小时 转化为12小时
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
printf("Enter a 24-hour time:");
scanf("%d:%d", &a, &b);
if (a > 12)
{
a = a - 12;
printf("Equivalent 12-hour time:%d:%d PM", a, b);
}
else
{
printf("Equivalent 12-hour time:%d:%d AM", a, b);
}
return 0;
}
7、
#include <stdio.h>
int main()
{
double i = 0;
printf("输入收入:");
scanf("%lf", &i);
if (i < 750)
printf("税金:%.2lf", i * 0.01);
else if (i >= 750 && i < 2250)
printf("税金: %.2lf", (7.50 + (i - 750) * 0.02));
else if (i >= 2250 && i < 3750)
printf("税金: %.2lf", (37.50 + (i - 2250) * 0.03));
else if (i >= 3750 && i < 5250)
printf("税金: %.2lf", (82.50 + (i - 3750) * 0.04));
else if (i >= 5250 && i < 7000)
printf("税金: %.2lf", (142.50 + (i - 5250) * 0.05));
else
printf("税金: %.2lf", (230.00 + (i - 7000) * 0.06));
return 0;
}
二、switch语句
switch语句也是一种一种分支语句。常常用于多分枝的情况。
switch语句的语法结构:
switch (整型表达式)
{
case 整型常量表达式 :
语句;
break;
case 整型常量表达式 :
语句;
break;
.......
case 整型常量表达式 :
语句;
break;
default :
语句;
break;
}
break: break在switch语句中作用是跳出switch,防止执行后面的case语句
default:除了上面列出来的情况之外,其余的情况。每个switch语句中只能出现一个default
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
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("输入1~7之间的数。\n");
break;
}
return 0;
}
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("输入1~7之间的数");
break;
}
return 0;
}
switch语句允许使用嵌套使用:
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
n++;//n = 2;
case 2:
m++;//m = 3;
case 3:
switch (n)
{
case 1 :
n++;
case 2:
m++;//m = 4
n++;// n =3
break;
}
case 4:
m++;// m =5
break;
default :
break;
}
printf(" m = %d n = %d", m, n);
return 0;
}
练习:
//显示法定格式的日期
#include <stdio.h>
int main()
{
int month = 0;
int day = 0;
int year = 0;
printf("Enter date (mm/dd/yy): ");
scanf("%d /%d /%d", &month, &day, &year);
printf("Date this %d", day);
switch (day)
{
case 1:
case 21:
case 31:
printf("st");
break;
case 2:
case 22:
printf("nd");
break;
case 3:
case 23:
printf("rd");
break;
default :
printf("th");
break;
}
printf(" day of ");
switch (month)
{
case 1:
printf("January");
break;
case 2:
printf("February");
break;
case 3:
printf("March");
break;
case 4:
printf("April");
break;
case 5:
printf("May");
break;
case 6:
printf("June");
break;
case 7:
printf("July");
break;
case 8:
printf("August");
break;
case 9:
printf("September");
break;
case 10:
printf("October");
break;
case 11:
printf("November");
break;
case 12:
printf("December");
break;
}
printf(", 20%.2d.\n", year);//.2显示最后两位数字
return 0;
}