只有一个分号也是个语句

int main()
{

;//也是一条语句

return 0;
}

 选择语句

if else

int main()
{
int age = 10;
if (age < 18)

printf("未成年\n");
else
printf("成年\n");

return 0;
}

练习

int main()
{
int age = 111;

if (age < 18)
{
printf("未成年\n");
}
else if (18 <= age && age < 30)
{
printf("青年\n");
}
else if (30 <= age && age < 45)
{
printf("壮年\n");
}
else if (age <= 60 && age < 70)
{
printf("老年\n");
}
else
printf("老家伙\n");
return 0;
}

善于使用代码块

int main()
{
int age = 1;

if (age < 18)
{
printf("未成年\n");
printf("好好学习");
}

else
printf("老家伙\n");
return 0;
}

悬空else,和离得最近的未匹配的if匹配

int main()
{
int a = 1;
int b = 2;
if (a == 0)
if (b == 8)
printf("ssss");
else
printf("shibai\n");

return 0;
}

常量和变量比较相等的时候,以防错误可以把赋值数字放在左边

int main()
{
int num = 4;
if (5 == num)//比较相不相等,把常量放左边看
{
printf("hehe");
}
return 0;
}

  练习:输出一百以内奇数

(出错:else后加;)

int main()
{
int i = 1;

while (i<=100)
{


if (i%2== 1)
{
printf("%d\n", i);
}
else
printf("不是基数\n");

++i;
}
return 0;

方法2

int main()
{
int i = 1;

while (i <= 100)
{

printf("%d\n", i);

//i = i + 2;
i += 2;
}

return 0;
}

繁琐的if else if

int main()
{
int i = 0;

scanf("%d", &i);

if (i ==1)
{
printf("周%d\n", i);
}
else if (i ==2)
{
printf("周%d\n", i);
}
else if (i ==3)
{
printf("周%d\n", i);
}
else
{
printf("摆烂\n");
}
return 0;
}

swicth 多分枝

swicith(整型表达式)

case常量表达式

int main()
{
int day = 0;
scanf("%d", &day);

switch (day)
{
case 1 :
printf("星期%d\n", day);
break;
case 2:
printf("星期%d\n", day);
break;
case 3:
printf("星期%d\n", day);
break;
case 4 :
printf("星期%d\n", day);
break;
case 5:
printf("星期%d\n", day);
break;
default:
break;
}

return 0;
}

要在case加入 break跳出

default 后最好也要加入break

int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
if (day == 1)
{
printf("哈哈哈\n");
}
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
printf("休息日\n");
default:
printf("输入错判");
break;
}

return 0;
}

练习题,答案 a= 3 b=5


int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
n++;
case 2:
m++;
case 3:
switch (n)
{//switch允许嵌套

case 1:
n++;
case 2:
n++, m++;
break;
}
case 4:
m++;
break;
default:
break;
}

printf("n=%d,m=%d\n", n, m);

return 0;
}

循环

break;//跳出循环结束进程

int main()
{
int i = 1;

while (i<11)
{
++i;//没用
printf("%d\n", i);
if (i == 5)
{
break;//跳出循环结束进程
}
//i++;//没用
}



return 0;
}

continue 结束当前循环,返回开头循环

int main()
{
int i = 1;

while (i<11)
{
//++i;

if (i == 5)
{
continue;//
}
printf("%d\n", i);
i++;//没用
}

getchar和putchar是一对,比打印函数简洁

int main()
{
int ch = getchar();
putchar(ch);
printf("%c\n", ch);
return 0;
}

 在getchar页面输入EFO是分三次打印,字符串也是多次打印

getchar页面按住CTRL+Z退出

int main()
{
int ch = 0;

//在getchar页面输入EFO是分三次打印,字符串也是多次打印
//getchar页面按住CTRL+Z退出

while ((ch=getchar())!=EOF)
{
putchar(ch);
}

return 0;
}