逻辑非的优先级高于算数运算符,算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑与和逻辑或运算符
双目运算符
左操作数+右操作数
!后面跟只需要一个操作数 逻辑非就是单目运算符
if-else语句
int i;
while(c=scanf("%d",&i)) //写个循环语句,“”里只要写个%d就好了,不用写太多
{
if(i>0)
{
printf("i is bigger than 0\n); //这里被标蓝的大括号可以不写,但是不符合大厂的编程规范,并且会使再加的语句不属于if里,要养成良好的编程习惯
}
else{
printf("i is not bigger tjan 0\n");
}
}
if语句和else语句也可以多个同时使用,但是无论有多少个语句,都只会执行其中一个语句,不会多个执行,也不会一个也不执行
if (表达式) 语句1
else if (表达式)语句2
else if(表达式) 语句3
……
else 语句n
if()
if( ) 语句1
else 语句2
else
if( ) 语句3
else 语句4
if可以嵌套,不限制嵌套多少次
while 循环
while(表达式)语句
先判断表达式,后执行语句
计算1到100的整数和:
int i=1,total=0;
while(i<=100) //while后面不能加分号,编译可以通过,但是会陷入死循环
{
total=total+i; //把i加到total上
i++; //i=i+1 为什么必须有i++呢,因为没有i++就陷入死循环了,没有这一步,每一次结果都会是1
//在循环体系内没有让while判断表达式趋近于假的操作,就会陷入死循环
//等于说i++让while判断表达式趋近于假
//程序运行半天,没有scanf卡住,又运行不到下面,就是死循环
//在C语言里能改变变量的有两种方式,一种是赋值,另外一种就是加加或减减,加加就是加1,减减就是减1
}
printf("total=%d\n",total);
for循环
C语言中for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况
for(表达式1;表达式2;表达式3)语句;
1,先求解表达式1(表达式1只会执行一次)
2,求解表达式2,若其值为真(值为非零),则先执行for语句中指定的内嵌语句,后执行第三步;若其值为假(值为0),则结束循环,转到第五步
3,求解表达式3
4,转回第二步继续执行
5,循环结束,执行for语句下面的语句
实现1加到100
int i,total;
for(i=1;i<=100;i++) for循环第一个表达式的作用就是初始化,for循环的好处就是让你不会忘记i++这个表达式
//第一个表达式的作用是初始化,第二个表达式判断条件,第三个使第二个趋近于加到、
//初始化可以多个,用逗号隔开
//for循环也不能加分号,不会死循环,但是运算结果不对
{
total+=i;
}
printf("total=%d\n",total);
continue语句
作用:结束本次循环,即跳过循环体下尚未执行的语句,接着进行是否执行下一次循环的判断。
一般形式为:
continue;
例子:
int main () {
int i,total;
total=0;
for(i=1;i<=100;i++)
{
if(i%2==0)
{
continne; //continue下面的代码均不会得到运行
}
total+=i;
}
printf(“total=%d\n”,total);
continue用于while和do while循环中时,注意不要跳过让循环趋于假的语句
int main () {
int i,total;
total=0;
while(i<=100)
{
if(i%2==0)
{
i++;
continne; //continue跳过下面语句,i++被跳过,整个代码自然就会陷入死循环
}
total+=i;
i++;
}
printf(“total=%d\n”,total);
break语句
作用:结束整个循环过程,不再判断执行循环的条件是否成立
int main() {
int i,total;
total=0;
for(i=1;i<=100;i++)
{
if(total>2000)
{
break; //满足所给条件,break语句执行,直接跳出整个大括号,执行printf
}
total+=1;
}
printf("total=%d,i=%d\n",total,i)