#include <stdio.h>
int main()
{
//************一、运算符**********
//1、赋值运算符 =
int a = 1;
//赋值运算符表示的是将等号右边的赋值给左边。
//注意:和赋值运算符比较相似还有一个 ‘==’
//两个等号表示的是判断
//例如
int b = 2;
a==b;//判断a和b是否相等。
//练习,交换a,b的值
int c=0;//在定义变量的时候建议都要赋初始值。
c = a;//将a的值赋值给c,c = 1;
a = b;//将b的值赋值给a,a = 2;
b = c;//将c的值赋值给b,b = 1;
printf("a=%d,b=%d\n",a,b);
//2、算术运算符(+,-,*,/,++,--,%)
//++在前,先加1,在运算
//++在后,先运算,在加1
//-- 同样适用
//++在后
int num = 5;
int num1 = num++; //在这一行(分号)之前(包含这一行)num = 5
//num1 = 5;num在下一行的时候=6;
printf("num=%d,num1=%d\n",num,num1);
//++在前
int num2 = 5;
int num3 = ++num2;
printf("num2 =%d,num3=%d\n",num2,num3);
int num4 = 5;
int num6 = --num4;
printf("num6=%d,num4=%d\n",num6,num4);
// 取余 %
/*
变量的命名规则:一个变量只能有数字,字母,
下划线三部分组成,并且数字不能开头。
*/
int num7 = 3;
int num8 = 4;
int num9 = num7 % num8; // 3/4 = 0...3
printf("num9=%d\n",num9);
//要求:%两边都必须int数据
int num10 = 4;
float num11 = 4.3;
// int num12 = num10 % num11;
//3、复合运算符(+=,-=,*=,/=,%=)(不推荐大家使用)
int num12 = 6;
num12 += 3;// num12 = num12 + 3
num12 *= 3;// num12 = num12 * 3
int num13 = 9;
int num14 = ((num13+=1) *=2);
//1、num13+=1 ==> num13 = num13+1 => 10;
//2、num14 =10*=2 = 10*2 =20
printf("num14=%d\n",num14);
//4、逻辑运算符(||,&&,!)
/*
||:表示或者的意思
表达式1||表达式2
表达式1正确,表达式2正确,结果正确
表达式1正确,表达式2错误,结果正确
表达式1错误,表达式2正确,结果正确
表达式1错误,表达式2错误,结果错误
总结:只有||的两边全是错误的,整个结果才是错误的
&&:表示并且的意思
表达式1&&表达式2
表达式1正确,表达式2正确,结果正确
表达式1正确,表达式2错误,结果错误
表达式1错误,表达式2正确,结果错误
表达式1错误,表达式2错误,结果错误
总结:只有&&两边全部都正确,结果才正确
!:表示非
!表达式,
原来是正确的,加了!就表示不正确
原来不正确的,加了!就表示正确的
*/
//******************二、表达式*****************
/*
表达式:1、不能单独运行,
2、表达式通常用作判断条件。
3、表达式的有结果,而且结果如果是正确的,我们叫做真
如果结果是不正确,我们叫做假。
4、表达式当做判断条件的时候后面不加分号
5、单独的一个变量也可以叫做表达式。
6、在C语言中,非0即为真(0假,1真)。
7、通过运算符将变量链接起来的式子也叫做表达式
*/
int h1 = 1;
int h2 = 2;
h1>h2;//假
h1; //真
h2; //真
h1-h2;//真
4-3; //真
//****************三、流程(分支)控制语句************
//一、if语句
//1种情况,要么做要么不做
/*
if(表达式)
{
表达式成立的时候才会被执行的代码
}
如果表达式不成立,就直接执行{}外面的代码了
*/
int score = 98;
if(score>90)
{
//只有表达式成立的时候才会进入到{}中
printf("你好棒啊,奖励一百块\n");
}
//这一句话,将不受if管理,肯定会被执行的
printf("你没有考到90分,要罚你100块");
//2种情况,二者必选其一
/*
if(表达式)
{
满足情况时执行的代码
}
else
{
不满足情况的时候执行的代码
}
*/
if(score > 90)
{
printf("你好棒啊,奖励你100块\n");
}
else
{
printf("你没有考到90分,要罚你100块");
}
//多个条件来修饰一种情况(1、if的嵌套2、&&)
/*
if()
{
if()....
}
else
{
if()...
}
*/
int weekend = 4;
int rain = 1;//1表示 下雨,0表示 __
if(weekend<6)
{
//周一到周五
if(rain == 1)
{
//下雨
printf("今天是工作日,并且下雨了");
}
else
{
printf("今天是工作日,但是没下雨");
}
}
else
{
//周六。周日
if(rain == 1)
{
printf("今天是周末,下雨了");
}
else
{
printf("今天是周末,没有下雨");
}
}
//多种情况,选择一种(找到第一个满足情况的后面就不在执行了)
/*
if()
{}
else if()
{}
..
..
..
else if()
{}
else
{}
*/
if(score>90)
{
printf("优秀\n");
}
else if(score>80)
{
printf("良好\n");
}
else if(score>70)
{
printf("中等\n");
}
else if(score>60)
{
printf("及格\n");
}
else//最后只需要写else就可以
{
printf("不及格\n");
}
//二、switch语句
//switch和if语句的多种情况选择一个很类似。
/*
1、有多少种情况就写多少个case
2、其他情况写在default里面
3、default可以省略不写
4、switch后面的表达式必须是int类型
5、当我们只需要让switch语句满足其中一个就退出,
需要在每个case后面添加break语句
6、break是跳出语句,在哪里遇到break,就在哪里跳出
7、switch语句,从满足条件的第一个情况开始,
会一直向下执行,一直向下执行到遇到break终止
如果没有遇到break,
就会把下面的所有情况都执行完毕
switch(表达式)
{
case 表达式1:
{
}
case 表达式2:
{
}
。。。。
default:
{
}
}
*/
switch(score/10)
{
case 10:
{
printf("100分");
break;
}
case 8:
{
printf("良好");
break;
}
case 9:
{
printf("优秀");
//break;
}
case 7:
{
printf("中等");
break;
}
case 6:
{
printf("及格");
// break;
}
default:
{
printf("不及格");
}
}
return 0;
}