关系运算:
是什么:
“==” “>” “<” “>=” “<=” “!=”
作用:
对数据进行比较
怎么用:
把运算符号放在两个比较重要的数据中间就可以
特点:
关系运算符的运算结果是一个int值 0或者1
优先级:
>,<,>=,<=优先级相等 大于==和!= ==和!=优先级相等
优先级相同的两个运算先后顺序看结合律 关系运算符结合律是从左到右
#include <stdio.h>
int main(){
int a=1==2;
printf("%d\n",a);
return 0;
}
a=0;
逻辑运算:
是什么:
“||”或 “&&”且 “!”非
作用:
对多个表达式进行并列 判断真假
用法:
“||” 有真为真 左边为真 右边
“&&”有假为假
“!”真假调换
什么时候用:
当需要对多个表达式进行并列真假判读时使用
特点:
所有数据都有真假 0为假 其他数都为真 结合律规定 从左往右执行
优先级顺序:
小括号()>符号(-)>!>算数运算符>关系运算符>&&>||
#include <stdio.h>
int main(){
int a=1+2<3||-3<4&&5>0;
printf("a=%d",a);
return 0;
}
上列函数等效于(1+2)<3||((!(-3))<4&&(5>0))
三目运算符:
有三个部分参加运算 叫做三目运算符
(真假判断表达式1)?(表达式2):(表达式3);
真假判断1 如果为真 表达2 如果为假 表达3
什么用:
根据条件成与否执行不同的表达式 返回不同的值 简化代码
什么时候用:
当需要根据条件执行不同的表达式时使用
特点:
1,有三个部分参与运算
2,和if(){} else {}; 等价
3,三个位置为表达式 不仅仅是数值 但必须有运算结果 不能定义变量
#include <stdio.h>
int main(){
int a=2>1?3+4:4+5;
printf("a=%d",a);
return 0;
}
优先级和结合律:
()小括号>-()>!>算数运算符>关系运算符>&&>||
ASCII码表
在计算机的世界中 所有字符都是二进制 如果不统一 A电脑上的字符在B上就会说另一个二进制
这样无法正常的通信 为了避免这种情况 就需要一种统一的标准 让所有的电脑上的字符代表的二进制表示形式都是一样的
这样 信息传递时才会是正确的
ASCII只用一个字节表示字符 有256种变化 对英文世界时够用的 但是中文是不够的
所以在中国主要有以下两种字节:
GBK2312:两个字节 16位 有6w多种可能
UTF-8:三个字节 24位 2^24种可能性
字符在运算是 会自动转换为ASCII值
int a=1+’a’;
printf(“a=%d”,a);
return 0;
输出值为97 a的ASCII码表对应值为96
选择控制语句if的用法:
1:顺序结构:
⬇️
代码1
⬇️
代码2
顺序结构
2:选择结构
指编程中用来判断给定的条件是否满足 根据判断的结果(真或假) 决定执行两种操作之一
有什么作用:
可以根据条件执行不同的操作
怎么用:
1:if(){}
2:if(){}else{}
3:if(){}else if(){}
4:if(){}else if(){}else {}
5:if();
什么时候用:
根据条件执行不同的操作
特点:
1:一次if语句只能执行给出的所有操作的一个
#include <stdio.h>
//一次if语句只能执行给出的所有操作中的一个
//例如下列语句只会输出a>1
//a++不会执行
int main(){
int a=5;
if (a>1) {
printf("a>1\n");
}
else if (a++) {
printf("a>2\n");
}
else if (a>3) {
printf("a>3\n");
}
else if (a>4) {
printf("a>4\n");
}
else if (a>5) {
printf("a>5\n");
}
else if (a>6) {
printf("a>6\n");
} else {
printf("都不满足\n");
}
return 0;
}
2:if();这种用法 只有紧跟在后边的一句有效 (读到: 结束) 且不能定义变量
#include <stdio.h>
int main(){
int a=2;
if (a>1)
printf("a\n");//满足则打印这行
printf("b\n");//打印
return 0;
}
3:除了if(); 其他所有if()与{}之间不能有;
4:if(条件){}里边的条件判断如果是与常量的等于判断 则常量写在前边
选择控制语句:
是什么:
指编程中用来判断所给定的条件是否满足 根据判定的结果 (真或假) 决定给出的具体操作
有什么用:
可以根据不同的int值匹配不同的操作
怎么用:
switch(表达式){case常量表达式1:语句1;break;…case…;defaulf:语句n;}
什么时候用:
当是判断int值匹配不同的值执行对应的操作时可以用 可以简化代码结构
有什么特点:
1:条件结果只能是整数 二case只能是整型常量 注意case’a’;
2:break可有可无 有则执行完跳出 没有则继续执行 知道遇到下一个break或执行完
#include <stdio.h>
int main(){
//如果执行完遇到没有break 则继续执行 不用判断 直到遇到下一个break
int a=3;
switch (a) {
case 1:
printf("a=1\n");
break;
case 2:
printf("a=2\n");
break;
case 3:
printf("a=3\n");
// break;
case 4:
printf("a=4\n");
// break;
case 5:
printf("a=5\n");
break;
default:
printf("没有满足的\n");
break;
}return 0;
}
3:default可有可无 有则如果条件都不满足 会执行这句 无则直接结束
#include <stdio.h>
int main(){
//如果没有default 则直接执行结束
int a=3;
switch (a) {
case 1:
printf("a=1\n");
break;
case 2:
printf("a=2\n");
break;
case 3:
printf("a=3\n");
break;
case 4:
printf("a=4\n");
break;
case 5:
printf("a=5\n");
break;
// default:
printf("没有满足的\n");
break;
}return 0;
}
4:case下面要定义变量必须假{}.且case之后的常量值不能重复
#include <stdio.h>
int main(){
int a=3;
switch (a) {
case 1:
printf("a=1\n");
break;
case 2:
printf("a=1\n");//报错 重复条件
break;
case 3:
printf("a=3\n");
break;
case 4:
printf("a=4\n");
break;
case 5:
printf("a=5\n");
break;
default:
printf("没有满足的\n");
break;
}return 0;
}
5:swith语句可以全部用if语句代替 单if不能全用switch替代
6:case下定义变量 必须加{}
循环结构while和do while :
是什么:
指编程循环语句 当满足条件是进入循环 循环判断直到不满足条件跳出循环
有什么用:
可以根据条件反复执行一段代码
怎么用:
while(条件) {循环语句}
do{循环语句} while(条件)
特点:
1:只有满足条件循环才会执行
#include <stdio.h>
int main(){
/*while的用法
while (条件) {
需要反复执行的代码
}*/
int a=0;
while (a<10) {
a++;
printf("我打印了%d次\n",a);
}return 0;
}
/*打印结果
我打印了1次
我打印了2次
我打印了3次
我打印了4次
我打印了5次
我打印了6次
我打印了7次
我打印了8次
我打印了9次
我打印了10次*/
//循环结构do while 的用法
#include <stdio.h>
int main(){
/*
do while的用法
do{需要反复执行的代码}
while(条件)
*/
int a=0;
do{a++;
printf("我打印了第%d次\n",a);}
while (a<10);
return 0;
}
2:注意死循环的出现 会一直循环下去 出发程序强制退出
3:如果continue 则跳出本次循环 继续下一次判断 如果条件成立则继续执行循环
#include <stdio.h>
int main(){
int a=0;
while (a<10) {
//如果碰到continue 则跳出本次循环 继续下一次判断 如果条件成立继续循环
a++;
if (6==a){
continue;
}
printf("我打印了%d次\n",a);
}return 0;
}
/*
打印结果 跳过了a=6的循环
我打印了1次
我打印了2次
我打印了3次
我打印了4次
我打印了5次
我打印了7次
我打印了8次
我打印了9次
我打印了10次
*/
4:如果碰到break 无论条件满足与否 循环立刻接受
#include <stdio.h>
int main(){
int a=0;
while (a<10) {
//如果碰到break 无论条件是否满足 则立刻跳出循环 循环结束
a++;
if (6==a){
break;
}
printf("我打印了%d次\n",a);
}return 0;
}
/*
打印结果 到第六次直接跳出 没有继续循环
我打印了1次
我打印了2次
我打印了3次
我打印了4次
我打印了5次
*/
5:continue和break都是跳出当前循环域 如果有外出循环 不受影响
#include <stdio.h>
int main(){
//内循环的continue 和break 不会影响外循环
int b=0;
while (b<4){
b++;
printf("我打印了第%d次b\n",b);
int a=0;
while (a<5) {
a++;
if (3==a){
continue;
}
if (4==a){
break;
}
printf("我打印了第%d次a\n",a);
}
} return 0;
}
6:do while至少执行一次 而while不一定
最近才开始往github上放东西 在公司写的又不能放= = 大家姑且看看吧
github地址: https://github.com/FuThD