目录
1.顺序结构
2.选择结构
分支语句 if switch
if
一分支(只有一个if)
#include <stdio.h>
int main()
{
int age = 20;
if(age < 18)
printf("未成年\n");
return 0 ;
}
两分支(一个if……else……)
#include <stdio.h>
int main()
{
int age = 20;
if(age < 18)
printf("未成年\n");
else
printf("成年\n");
return 0 ;
}
多分支
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d\n",&age);
if(age < 18);
printf("未成年\n");
else if(age >= 18 && age <28)
printf("青年\n");
else if(age >=28 && age <50)
printf("壮年\n");
else (age >= 50 && age <90)
printf("老年\n");
return 0;
}
练习:
1.判断一个数是否为奇数
#define _CRT_SECURE_NO_WARNINGS //判断是否是奇数
#include <stdio.h>
int main()
{
int a;
int b;
scanf("%d\n", &a);
b = a % 2;
if (1 == b)
printf("a是奇数");
else
printf("a不是奇数");
return 0;
}
2.输出1-100之间的奇数
#include <stdio.h> //写出1-100之间的奇数
int main()
{
int a;
int i = 1;
while (i <= 100)
{
if(i % 2 == 1)
printf("%d ", i);
i++;
}
return 0;
}
switch 允许嵌套使用
case后接整型常量表达式
//switch语句
#define _CRT_SECURE_NO_WARNINGS
#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("输入错误\n");
break;
return 0;
}
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default: //输入其他的数字
printf("输入错误");
break;
}
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)
{
//switch允许嵌套使用
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 = 1;
while (i <= 10)
{
i++;
if (5 == i)
//break; //永久终止循环
continue; //终止本次循环,跳到while的判断语句
printf("%d ", i);
}
return 0;
}
getchar()和putchar()
getchar()夺取一个字符,putchar()打印一个字符
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int ch = getchar();
putchar(ch);
printf("%c\n", ch);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF) //CTRL + Z出来 EOF -end of file 文件结束标志 值为-1
{ //getchar()只把输入的第一个字符打印出来
putchar(ch); //如果没有退出,一直输入字符,然后打印出来。
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
char password[20] = { 0 };
int ret = 0;
printf("请输入密码:>");
scanf("%s", password); //123456\n //数组名是整个数组的首地址也是第一个元素的地址,所以不用加&
printf("请确认(Y/N):>");
ret = getchar(); //getchar()取了\n,所以直接放弃确认
if (ret == 'Y')
printf("确认成功\n");
else
printf("放弃确认\n");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
char password[20] = { 0 };
int ret = 0;
int ch = 0;
printf("请输入密码:>"); //\n 是回车
scanf("%s", password); //123456\n //数组名是整个数组的首地址也是第一个元素的地址,所以不用加&
// 输入密码是存在输入缓冲区的,输完密码后要把密码之外的东西清除,比如输入123456 78asac\n把后面的都清除
while ((ch = getchar()) != '\n') //注意\n是一个字符 单引号 只有输入到'\n'才输入结束
{
;
}
printf("请确认(Y/N):>");
ret = getchar();
if (ret == 'Y')
printf("确认成功\n");
else
printf("放弃确认\n");
return 0;
}