分支和循环(1)
原创
©著作权归作者所有:来自51CTO博客作者沙鱼胡椒的原创作品,请联系作者获取转载授权,否则将追究法律责任
只有一个分号也是个语句
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;
}