第一次用,不知道可以插入代码块
易错点:
多使用空格,对齐,便于代码的阅读
if语句:
1、如果条件成立,要执行多条语句,应该使用代码块{}。
2、else的匹配:else是和它离的最近的if匹配的。
switch语句:
1、switch后面要是整形表达式;case后面要是整形常量表达式
2、在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支:但具体是否使用break看我们自己的逻辑需求
3、default:
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
4、在最后一个 case 语句的后面加上一条 break语句,在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。
(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句)。
while语句:
1、break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
2、continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
代码笔记:
#include<stdio.h>
//举例
int main()
{
int age = 10;
if(age<18) //如果警报,前面多加一行代码scanf("%d",&age);
printf("minorty\n");
else if(18<=age<28); // 先执行18<=age,为假得到0,进而0<23,得出10岁是青少年的错误结论
else if(age>=18&&age<28)
printf("youth\n");
else if(age>=28&&age<50)
printf("prime\n");
else if(age>=50&&age<90)
printf("old\n");
else
printf("长寿\n");//最后else也可以不写,即只用到前面的else if,不需要else这两行代码
return 0;
}
int main()
{
if(age<18)
printf("minorty\n");
else
printf("adult\n");
if(age<18)
printf("minorty\n");
return 0;
}
if 语句要执行多个代码需要加大括号
/* int main()
{
int age = 17;
if (age<18)
{
printf("未成年\n");
printf("不能结婚\n");
}
else
return 0;
} */
/* //悬空else
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else //else与离他最近的未匹配的if匹配,就近原则
printf("haha\n");
return 0;
} //没有结果
/* int main()
{
int num = 4;
if(5 == num);//常量放在左边,是一种更好的代码形势,此时若代码打成赋值不会运行
{
printf("hehe\n");
}
if(num = 5)\\赋值
{
printf("hehe\n");
}
return 0;//输出hehe,因为一个等号是赋值
}
*/
//练习
//判断一个数是否为奇数
//输出1-100之间的奇数
第一种:
/* int main()
{
int i = 0;
printf("Odd numbers between 1 and 100 are:\n",i);
while (i<=100)
{
if(i % 2 !=0)
{
printf("%d\n",i);
}
i++;
}
if(i>100)
{
printf("over:\n");
}
return 0;
} */
第二种
/* int main ()
{
int i;
printf("Odd numbers between 1 and 100 are:\n");
for (i = 1; i <= 100; i++) {
if (i % 2 != 0) {
printf("%d ", i);
}
}
return 0;
} */
//////////Switch 语句
//原因,if语句分支过多太繁琐
// int main()
// {
// int day = 0;
// scanf("%d",&day);
// if(1 == day)
// printf("mondy\n");
// if(2 ==day)
// printf("tuesday\n");
// if(3 ==day)
// printf("wensday\n");
// //……
// return 0;
// }
//Switch也是一种分支语句 , 常 用于多分支情况
//switch(整形表达式)
// case 整形常量表达式,----case 1 / case 1+0; err----case 1.0(不是整形) case n(变量也不行)
/* int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
printf("mondy\n");
break;//// break,跳出Switch语句,若没有break,后面的所有case都会执行
case 2:
printf("tuesday\n");
break;
case 3:
printf("wensday\n");
break;
case 4:
printf("thusday\n");
break;
case 5:
printf("friday\n");
break;
case 6:
printf("saturday\n");
break;
case 7:
printf("sunday\n");
break;
}
return 0;
} */
//switch 语句例子
/* int main()
{
int day = 0;
int n = 1;
scanf("%d",&day);
switch(day)
{
case 1:
if(1 == n)
printf("sad\n"); //switch语句中可以出现if语句
case 2:
case 3:
case 4:
case 5:
printf("work\n");
break;
case 6:
case 7:
printf("rest\n");
break; //break不一定要有,看我们需要的逻辑,如例
//即使最后一个case,也加上一个break,算是一个好习惯
default:
//给个提示,提示输入的超出识别范围,不一定放在末尾,放在前面也不影响结果(要在switch语句里)
printf("input err\n");
break;
}
return 0;
} */
//while语句语法结构
//while(表达式)
// 循环语句
/* int main()
{
if(1)
printf("hehe\n");
return 0;
} */
/* int main()
{
int i = 1;
while(i<=10)
{
if(i==5)
// break; //break跳出循环,结束整个循环
continue; // continue终止本次循环,跳到循环开头的入口判断
printf("%d ", i);
i = i++;
}
return 0;
} */
/* int main()
{
int ch = getchar();//getchar() 字符输入函数----接受键盘输入的字符
putchar(ch); //字符输出函数,输出字符, 功能与代码printf("%c\n",ch);相同
printf("%c\n",ch);
return 0;
} */
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
//getchar() 字符输入函数----接受键盘输入的字符
//如果输入EOF,它是一个一个字符输入并打印的,依然会满足 !=EOF,从而输出EOF
////ctrl + z 就会结束,不会进入循环;代表EOF---end of file---> -1 (ASCII)
return 0;
}