C语言----选择结构(基础篇三)
大家好,忙里抽空更新一下自己的博客,算是自己的一个进步,C语言视频启蒙我早就看完啦,只是觉得这个视频真不错,所以给大家分享一下,同时自己还有很多没有理解透彻,写写博客算是一个笔记更是对自己所学的知识的吸收,废话不多直接开始今天的主题,"C语言的选择结构"
关系运算符
小于:<
大于:>
等于:= =
小于等于:<=
大于等于:>=
不等于:!=
逻辑运算符
非:!
与:&&
或:||
假设x=1,y=2,x1=3,y1=4,那么x>y||x1<y1的结果是真还是假?!(x>y)&&x1<y1呢? 参考答案:真、真
x>y(false) 或 x1<y1(true) 结果为 true
!(x>y)(假取反为真) 并且 x1<y1(true) 结果为 true
简单运算符
=号是最常用的运算符,在数学表达式中a=a+1是错误的,而在计算机中,这表示将a的值加上1再赋给a,如果a原来是5,经过这种运算后,a会变成6。也是就是说=号在计算机中表示“赋值”,它会将右边的“计算结果”装进左边的“变量”。
a=a+1也是经常用的运算符,C语言为了方便,便使用a++这种运算符来计算a=a+1,a--来计算a=a-1。也就是说,++代表变量自身加1,--代表变量自身减1。
运算符优先级
括号 !(非) 算术运算符 关系运算符 &&和|| 赋值运算符(=) |
高 | | | ∨ 低 |
算术运算:*、/ 高于 +、-
关系运算:>、>=、<、<= 高于 = =、!=
逻辑运算:!高于&&高于||
一首记忆诗:
1、括号成员第一
2、全体单目第二
3、乘除余三,加减四
4、移位五,关系六
5、等于(与)不等排第七
6、位与异或和位或
7、"三分天下"八九十
8、逻辑或跟与
9、十二和十一
10、条件高于赋值
11、逗号运算级最低
解释:
1、括号运算符[]() 成员运算符. ->
2、所有的单目运算符比如++、 --、 +(正)、 -(负) 、~(位反)、指针运算*、&、!
3、这个"余"是指取余运算即%
4、移位运算符:<< >> ,关系:> < >= <= 等
5、即= = 和!=
6、这几个都是位运算: 位与&异或^位或|
7、接上一句:它们分别排 7 8 9
8、逻辑运算符:|| 和 &&
9、注意顺序:优先级(||) 底于 优先级(&&)
10、三目运算符(:?)优先级排到13 位只比赋值运算符和","高
11、逗号运算符优先级最低
脱括号:
(a>b) && (x>y) 可化简为:a>b && x>y
(a= =b) || (x= =y) 可化简为a= =b || x= =y
(!a) || (a>b) 可化简为 !a || a>b
if语句
if(表达式)
{
若干语句
…
}
程序1
用户输入2个数,按从大到小的顺序将它输出
/*3_1 if 语句:用户输入两个数字,按从大小的顺序将他们输出在屏幕上*/ #include <stdio.h> main() { int a, b, c; //a b 为比较的数,c为临时交换变量 scanf_s("%d%d", &a, &b); //输入两个数 //下面的作用就是:如果第一个数大于第二个数就交换他们的值 if (a<b) { c = a; a = b; b = c; }; printf("%d%d\n",a,b); //输出交换后的值 system("pause"); }
变化一:
格式:
if(表达式)一条语句;
注意:
if(a>b)a++;b++;
相当于
if(a>b)
{
a++;
}
b++;
而不是
if(a>b)
{
a++;
b++;
}
变化二(二选一):
格式:
if(表达式)
{
若干语句
…
}
else
{
若干语句
…
}
变化三:
格式:
if(表达式)一条语句; else 一条语句;
程序2
用户输入2个数,按从大到小的顺序将它输出的第二种解法
/* 3_2_ if 用户输入两个数,数字按从大到小的顺序将他们输出屏幕上面*/ #include <stdio.h> main() { int a, b; //定义两个变量从键盘上面接收 scanf_s("%d%d", &a, &b); //输入两个数值 if (a>b) { printf("%d%d\n", a, b); //按顺序输出 } else { printf("%d%d", b, a); //倒序输出 }; system("pause"); }
单目运算符和双目运算符
当前上面的运算符中,++、--、!都为单目运算符。其实减号运算符也可作单目运算符,它加在表达式(表达式可包括常量、变量)左边,表示取它的相反数。
双目运算符的两边必须都要有表达式
程序3
输入一个整数,打印出它是奇数还是偶数(学习%的使用)
/* 3_3_输入一个数,打印在屏幕上是奇数还是偶数*/ #include <stdio.h> main() { int a; scanf_s("%d", &a); // " % " :在scanf函数中表示格式控制 if (a%2 == 0 ) { // " % ":在if语句中表示余数计算 printf("%d是偶数\n", a); } else { printf("%d是奇数\n", a); }; system("pause"); }
程序调试技巧
程序调试: VS2015 调试的方式自己百度一下,我对这个工具也是刚刚入门,所以没什么分享给大家,但是总体使用感觉不用不是很舒服,网上那些快捷方式在我的电脑上都没作用,也有可能之前自己用VScode习惯的原因吧。
如果是用的VC6++,可以用下面的方式:
F9:设置断点
F5:运行至断点
F10:单步执行
F11:单步执行至函数内部
在VC中书写程序时如果不小心拼错了某个关键字或漏了什么标点标号等等,这叫语法错误。这时按感叹号时在编辑器的下面会报错,查找错误的方式就是在报错栏中找到带error的行,再双击它,代码栏就会出现一个蓝色箭头指向错误行,再在错误行的附近查找语法错误并修正它。
作业
上机改错题:输入两个数,求出它们之中最小的数输出
#include “stdio.h”
main()
{
int a,b;
/**************found***************/
scanf(“%d%d”,&a,&b);
if(a>b)
{
/**************found***************/
printf(最小的数为%d,a); // 里面没加 " ", 逻辑错误
}
else
{
printf(“最小的数为%d”,b);
}
}
以上红色的部分是错误的!