选择语句
顾名思义,人生道路上有很多的选择,生活中你去超市也可以选择很多东西,比如说卖水果,应该买苹果还是香蕉,卖多少价位的,是10元还是20元,这些都是选择,而我们计算机程序中也设计了这一套语言去帮助完成更多更复杂的选择。
让我们来进入正题。
我们先从一套简单的选择语句开始:
问题:你会在上课之后坚持敲代码吗?
选择1:敲代码 ——> 好成绩
选择2:不敲代码 ——> 坏成绩
#include <stdio.h>
int main()
{
int a = 0;
printf("你会在上课之后坚持敲代码吗?选择(1 or 2 )");
scanf("%d", &a);
if (a == 1)
{
printf("好成绩");
}
else
{
printf("坏成绩");
}
return 0;
}
要注意的是选择语句我们经常使用的是if else 语句,阐述的是当前面if语句条件达成成功后, else就不会进去判断了。
当然我们也得注意这个情况==是两个等于不能用一个=代表条件,这句话的意思是 两个=代表的是等于符号, 而一个=则是赋值操作。实话实说我经常被这个搞出bug来,所以要非常建设的注意这个符号。
循环语句
循环语句则是把一个事情重复做很多遍而最终看能不能满足要求结束语句。
比如我们应该活到老学到老,这个学习就是日复一日的循环,这里主要讲while循环。
举个例子,我们要天天coding, 如果我们的代码有两千多的行数,我们可以参加比赛,所以为了参加比赛我们会天天码代码,直到我们有两千多的行数。
int main()
{
int line = 0;
printf("为了比赛!\n");
while (line <= 2000)
{
printf("加油,还差一点.%d\n", line);
line++;
}
if (line > 2000)
{
printf("参加比赛\n");
}
return 0;
}
看这个例子可以知道,当你在没超过2000的反复循环,你是不能跳出while语句的,看到这里你应该就知道while语句如何学习了。
函数
函数是比较难的一部分,我还是会从简单版先聊起。之后会出个详细博客,慢慢来。
我们先从一个简单的代码说起,假如我们想把a和b相加起来,我们一般会写出这样的代码。
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入
scanf("%d %d", &num1, &num2);
//计算
sum = num1 + num2;
//输出
printf("%d\n", sum);
return 0;
}
但是如果我们未来想计算更多的数相加,这样的代码反而显得累赘,所以我们需要用到函数。
函数的作用就是让别人帮你做一件事情,比如说我想去超市买东西,但是我不想去,所以我给钱让小a帮我去买。而小a就是这个函数。买的东西和我给的钱就是传参,然后小a买完东西回来后,我接收买的东西,这样就顺利的完成了这个函数。
我 = 小a (钱, 买的东西);
现在我们就来看看代码怎么运作的。
int ADD(int x, int y)
//返回的值z是int的类型,所以函数的返回类型也要int,sum也是整形这三个都得一样
{
int z = 0;
z = x + y;
return z;
}
//
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入
scanf("%d %d", &num1, &num2);
//计算
sum = ADD(num1, num2);
//输出
printf("%d\n", sum);
return 0;
}
注意:当你设置的加数都是int整型的话,返回的add设置也需要设置成int类型,sum也是一样,不可忽略。
数组
数组就是一组相同类型元素的集合。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//定义了一个整型数组,且数组可以放十个整型元素。不能超过十个数字。
当我们想打印这些数字的时候,我们应该怎么做?
这个问题主要是关于数组下标,数组下标的开始数字是0,所以当我们想打印第一个数的话我们需要arr[0],这个时候我们就可以打印第一个数。
int main()
{
//char ch[5] = {'a', 'b', 'c'};
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
printf("%d\n", arr[0]);
//打印的结果是1
return 0;
}
如果我们想把这些数字全部输出,我们就可以运用for或者while循环,简单输出所有的数字。
int main()
{
//char ch[5] = {'a', 'b', 'c'};
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i = 0;
while (i < 10)//或者for(int i = 0; i < 10; i ++)
{
printf("%d\n", arr[i]);
i++;
}
return 0;
}
如果我们想倒序输出也是可以的
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i = 9;
while (i >= 0)
{
printf("%d\n", arr[i]);
i --;
}
return 0;
}
操作符
- 算术操作符 : + - * / %
首先我们主要来看除号,在编译器中,计算机没有那么智能的帮你算出5/2=2.5, 在你设置为int的情况下,这个等式只能等于2。
int main()
{
int a = 5 / 2;
//不可能是个小数,需要改正float以及5.0或者2.0
printf("%d\n", a);
return 0;
}
另一个就是取模%,意思是余数,比如说5%2 = 1;
int main ()
{
int a = 7 % 2;
printf("%d\n", a);
//%取模得道德是整除之后的余数
return 0;
}
- 移位操作符 :>> <<
而移位操作符则是关于二进制位的
int main()
{
int a = 6;
int b = a << 1;
//移动的是二进制位
//a = 6; 4个字节 32 个比特位
//0000000000000000000000110
//左移一位右边补0
printf("%d\n", b);// 12
printf("%d\n", a);// 6 a不变
return 0;
}
看这个,左移一位补零,就变成了1100的二进制位,然后计算得出等于2^3 + 2^2 = 8 + 4 = 12;
- 位操作符:
& ^ |
#include <stdio.h>
//位操作符
// & 按二进制位与
// ^ 按二进制位异或
// | 按二进制位或
int main()
{
int a = 3;
int b = 5;
//相同为1,相异为0
//0011
//0101
//0001
//按位与
int c = a & b;
//按位异或
int c = a ^ b;
//相同为0,相异为1
//0011
//0101
//0110
//按位或
int c = a | b;
//二进制位有一就是1;
//0011
//0101
//0111
printf("%d\n", c);//1
return 0;
}
- 赋值操作符 :
= += -= *= /= &= ^= |= >>= <<=
int main()
{
int a = 10;//创建变量a 并且初始化为0;
a = 20; //赋值
a = a + 10;//赋值
a += 10;
a = a - 8;
a -= 8;
a = a >> 1;
a >>= 1;
return 0;
}
- 单目操作符:
! 逻辑反操作
-负值
+正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
– 前置、后置–
++ 前置、后置++
*间接访问操作符(解引用操作符)
单目操作符顾名思义就是只有一个操作数, 而双目操作符就是两个操作数,比如说: a + b, +就是双目操作符
//真和假
//非0就是真 5-真
// 0 就是假 0-假
int main()
{
int a = 0;
printf("%d\n", !a);//1真
int a = 10;
if (a)//a为真,要进入if语句
{
}
if (!a)//a为假进入if语句
{
}
return 0;
}
- 关系操作符:
=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
- 逻辑操作符:
&& 逻辑与 必须两个数都必须满足才能成立
|| 逻辑或 两个数中一个数满足即可成立
int main()
{
int a = 3;
int b = 4;
if (a == 3 && b == 4)
{
printf("haha\n");
}
if (a == 3 || b == 5)
{
printf("hehe\n");
}
return 0;
}
- 条件操作符
exp1 ? exp2 : exp3
int main()
{
int a = 10;
int b = 0;
//方式一
if (a == 5)
b = -6;
else
b = 6;
//方式二
b = ((a == 5) ? -6 : 6);
return 0;
}
这两个方式都是一个意思都可以成立相同的条件。
- 逗号表达式
exp1, exp2, exp3, …expN
int main()
{
int a = 0;
int b = 3;
int c = -1;
int d = (a = b - 5, b = a + c, c = a + b, c -= 5);
//逗号表达式会从左向右依次计算
//结果是最后一个表达式的结果
printf("%d\n", d);//-10
return 0;
}
- 下标引用、函数调用和结构成员
[] () . ->
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
arr[9];//[]下标引用操作符
return 0;
}
未完待续啊,观众老爷的都点个赞吧,你的支持就是我的动力!谢谢你们。