礼品公司网站模板,大理建设工程信息网,网站同步到新浪微博,软件开发从入门到精通5.1 运算符和运算符
5.1.1逻辑运算发
运算符说明结核性举例与运算#xff0c;双目#xff0c;对应数学中的“且”左结合10、(93)(ba与运算#xff0c;双目#xff0c;对应数学中的“且”左结合1!非运算#xff0c;单目#xff0…5.1 运算符和运算符
5.1.1逻辑运算发
运算符说明结核性举例与运算双目对应数学中的“且”左结合10、(93)(ba与运算双目对应数学中的“且”左结合1!非运算单目对应数学中的“非”右结合!a、!(25)
举例
#include stdio.h
int main(){int a 0, b 10, c -6;int result_1 ab, result_2 c||0;printf(%d, %d\n, result_1, !c);printf(%d, %d\n, 90, result_2);printf(%d, %d\n, b||100, 00);return 0;
}
运行结果
0, 0
0, 1
1, 05.1.2 关系运算符
关系运算符在使用时它的的两边都会有一个表达式比如变量、数值、加减乘除运算等关系运算符的作用就是判明这两个表达式的大小关系。注意是判明大小关系不是其他关系。
关系运算符含义数学中的表示小于小于或等于≤大于大于或等于≥等于!不等于≠
举例
#include stdio.h
int main(){char ck;int i1, j2, k3;float x3e5, y0.85;int result_1 a5c, result_2 x-5.25xy;printf( %d, %d\n, result_1, -i-2*jk1 );printf( %d, %d\n, 1j5, result_2 );printf( %d, %d\n, ijk-2*j, kji5 );return 0;
}
运行结果
1, 0
1, 1
0, 0注意
需要提醒的是才表示等于而表示赋值大家要注意区分切勿混淆。
5.1.3 条件运算符
格式
表达式1 ? 表达式2 : 表达式3
结合方向
自右向左
举例
#include stdio.h
int main(){int a, b;printf(Input two numbers:);scanf(%d %d, a, b);printf(max%d\n, ab?a:b);return 0;
}
运行结果
Input two numbers:23 45
max455.1.4 优先级
赋值运算符() 和|| 关系运算符 算术运算符 非(!)
举例
#include stdio.h
int main(){char ck;int i1,j2,k3;float x3e5,y0.85;printf( %d,%d\n, !x*!y, !!!x );printf( %d,%d\n, x||ij-3, ijxy );printf( %d,%d\n, i5c(j8), xy||ijk );return 0;
}
运行结果
0,0
1,0
0,15.2 if-else 选择结构
用法 ### 用法1
if(判断条件){语句块1
}else{语句块2
}等效图 用法2
if(判断条件){ 语句块 }
等效图 用法3多分支
if(判断条件1){ 语句块1 } else if(判断条件2){ 语句块2 }else if(判断条件3){ 语句块3 }else if(判断条件m){ 语句块m }else{ 语句块n }
用法4 :嵌套
#include stdio.hint main(){int a,b;printf(Input two numbers:);scanf(%d %d,a,b);if(a!b){ //!表示不等于if(ab) printf(ab\n);else printf(ab\n);}else{printf(ab\n);}return 0;}
运行结果
Input two numbers:12 68
ab5.3 switch-case 选择结构
格式
switch(表达式){ case 整型数值1: 语句 1; case 整型数值2: 语句 2; … case 整型数值n: 语句 n; default: 语句 n1; } 需要重点强调的是当和某个整型数值匹配成功后会执行该分支以及后面所有分支的语句。 break 是C语言中的一个关键字专门用于跳出 switch 语句。 case 后面必须是一个整数或者是结果为整数的表达式但不能包含任何变量。请看下面的例子
case 10: printf(...); break; //正确
case 89: printf(...); break; //正确
case A: printf(...); break; //正确字符和整数可以相互转换
case A19: printf(...); break; //正确字符和整数可以相互转换
case 9.5: printf(...); break; //错误不能为小数
case a: printf(...); break; //错误不能包含变量
case a10: printf(...); break; //错误不能包含变量default 不是必须的。当没有 default 时如果所有 case 都匹配失败那么就什么都不执行
5.4 while循环结构
while循环
格式 while(表达式){
语句块} 我们通常将“表达式”称为循环条件把“语句块”称为循环体整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。
举例
#include stdio.h
int main(){int i1, sum0;while(i100){sumi;i;}printf(%d\n,sum);return 0;
}do-while
格式
do{ 语句块 }while(表达式);
举例
#include stdio.h
int main(){int i1, sum0;do{sumi;i;}while(i100);printf(%d\n, sum);return 0;
}for 循环
格式
for(表达式1; 表达式2; 表达式3){ 语句块 }
等效图 举例
#include stdio.h
int main(){int i, sum0;for(i1; i100; i){sumi;}printf(%d\n,sum);return 0;
}5.6 循环嵌套和跳出
break
举例
#include stdio.h
int main(){int i1, j;while(1){ // 外层循环j1;while(1){ // 内层循环printf(%-4d, i*j);j;if(j4) break; //跳出内层循环}printf(\n);i;if(i4) break; // 跳出外层循环}return 0;
}
运行结果
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16continue
举例
#include stdio.h
int main(){char c 0;while(c!\n){ //回车键结束循环cgetchar();if(c4 || c5){ //按下的是数字键4或5continue; //跳过当次循环进入下次循环}putchar(c);}return 0;
}
运行结果
0123456789↙
01236789嵌套
举例
#include stdio.h
int main()
{int i, j;for(i1; i4; i){ //外层for循环for(j1; j4; j){ //内层for循环printf(%-4d, i*j);}printf(\n);}return 0;
}
运行结果
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 165.7 总结
最后还要注意 break 和 continue 关键字用于循环结构时的区别 break 用来跳出所有循环循环语句不再有执行的机会 continue 用来结束本次循环直接跳到下一次循环如果循环条件成立还会继续循环。