分支和循环语句(上)
什么是语句?
分支语句
if 语句
1.单分支语句
#include<stdio.h>
int main()
{
int year = 0;
scanf("%d", &year);
if (year < 18)
printf("未成年\n");
return 0;
}
#include<stdio.h>
int main()
{
int year = 0;
scanf("%d", &year);
if (year < 18)
printf("未成年\n");
printf("不能饮酒\n");
return 0;
}
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
printf("不能饮酒\n");
}
return 0;
}
2.双分支语句
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
return 0;
}
3.多分支语句
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("青少年\n");
}
else if(age>=18&&age<28)
{
printf("青年\n");
}
else if (age >= 28 && age < 40)
{
printf("中年\n");
}
else if (age >= 40 && age < 60)
{
printf("壮年\n");
}
else
{
printf("老年");
}
return 0;
}
悬空else
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("test1\n");
else
printf("test2\n");
return 0;
}
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
}
else
printf("haha\n");
return 0;
}
良好的代码风格:
例题
1
#include<stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
{
printf("是奇数\n");
}
else
{
printf("不是奇数\n");
}
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
printf("%d ", i);
}
}
return 0;
}
switch
#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;
}
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("weekdey\n");
break;
case 6:
case 7:printf("weekend\n");
break;
}
return 0;
}
default子句
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("weekdey\n");
break;
case 6:
case 7:printf("weekend\n");
break;
default:printf("输入数据错误\n");
}
return 0;
}
例题
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:m++;
case 2:n++;
case 3:
switch (n)
{
case 1: n++;
case 2: m++; n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
循环语句
while循环
#include<stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
i++;
printf("%d ", i);
}
return 0;
}
while语句中的break和continue
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (5 == i)
break;
printf("%d ", i);
i++;
}
return 0;
}
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (5 == i)
continue;
printf("%d ", i);
i++;
}
return 0;
}
例题
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
putchar(ch);
return 0;
}
#include<stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:>");
scanf("%d", &password);
char ch = 0;
printf("请确认密码:>");
int ret = getchar();
if ('Y' == ret)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
#include<stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:>");
scanf("%d", &password);
char ch = 0;
while ((ch = getchar()) != '\n');
printf("请确认密码:>");
int ret = getchar();
if ('Y' == ret)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
#include <stdio.h>
int main()
{
char ch = '\0';
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}