小奇:老酷,编个程,还得有最强大脑?还得记住这么多符号的优先级?
老酷:开什么玩笑?这些优先级你不想记么?(停顿)不记你还真的可以写好程序!!!(老酷调侃说)
小奇:真的?(两眼放光)快点说说!
老酷:那你有没有注意到谁的优先级最高呢?
小奇:小括号呀!
老酷:那你在你写代码的时候不确定优先级的时候就用小括号。记住优先级对于简单的式子是有用的,但是并不是所有人都熟悉优先级。加小括号能够使代码可读性增加,对于复杂的式子效果更好。
小奇:看来小学的数学四则运算很重要,小括号要优先!不过还是有很多特殊的运算符。昨天的'+'算一个特殊的。在字符串之间使用的时候,是连字符。在数字之间是加号,'-'和'*'的使用到时没有什么特殊的。但是在我使用'/'的时候就发生问题了。你看
static void Main(string[] args)
{
int num1 = 10;
int num2 = 3;
Console.WriteLine(num1/num2);
}
运算结果是:
不该是3.3333333么?
老酷:在对整数和整数之间的除法时,这里是表示的是整除,就是得到的是商。如果是真的做除法,需要小数结果可以将被除数或者除数乘以一个浮点数1.0或1.0f
static void Main(string[] args)
{
int num1 = 10;
int num2 = 3;
Console.WriteLine(num1 * 1.0f/num2);
}
运行结果是:
小奇:那计算余数怎么办?
老酷:使用'%'
static void Main(string[] args)
{
int num1 = 10;
int num2 = 3;
Console.WriteLine(num1 %num2);
}
运行结果:
小奇:恩,不过整体下来我发下一个规律,程序员是会偷懒的。
老酷:此话怎么说?
小奇:像+=、-=、*=、/= 操作都是简写
static void Main(string[] args)
{
int num1 = 10;
int num2 = 3;
num2 += num1;//是 num2 = num2 + num1; 的简写
Console.WriteLine(num2);
int num3 = 10;
int num4 = 3;
num4 -= num3;//是 num4 = num4 + num3; 的简写
Console.WriteLine(num4);
int num5 = 10;
int num6 = 3;
num6 *= num5;//是 num6 = num6 + num5; 的简写
Console.WriteLine(num6);
int num7 = 10;
int num8 = 3;
num8 /= num7;//是 num8 = num8 / num7; 的简写
Console.WriteLine(num8);
}
运行结果:
对了,还有类似于++,和--操作也是简写
老酷:是的,但是++和--和上面的还是有点不同的
++ 是自加1 --是自检1 类似于 i = i-1;
static void Main(string[] args)
{
int num1 = 10;
Console.WriteLine(num1++);
int num2 = 10;
Console.WriteLine(++num2);
}
运行结果:
第一个是先使用值 输出后,在对变量+1
第二个是先对变量+1 后再使用值
小奇:恩。还是理解的不够扎实。老酷老酷了!!!
老酷:在关系运算符中也有一些坑。其实不是坑,而是不能用数学中的思维去理解的关系运算符!
static void Main(string[] args)
{
Console.WriteLine("6 <= 8:{0}",6 <=8);
Console.WriteLine("8 >= 8:{0}", 8 >=8);
Console.WriteLine("8 >= 9:{0}", 8 >=9);
}
运行结果:
在使用大于号和小于号的时候我们不用使用数学中的≥和≤ ,在程序中不支持,其他的你自行测试。
小奇:恩。
老酷:接下来我给你说一下逻辑运算符,给你将三个&&,||和!
&&就是并且的意思 所有条件满足则为真 否则为假
|| 就是或的意思 只要有一个条件满足则为真 否则为假
!是取反的意思 真取反为假,假取反为真
例如:
static void Main(string[] args)
{
int num1 = 10;
int num2 = 20;
//两个条件有都为真则为true
Console.WriteLine(num1>8 && num2<30);
//有一个条件为假则为false
Console.WriteLine(num1 > 15 && num2 < 30);
//两个条件有一个为真 则为true
Console.WriteLine(num1<10 || num2>10);
//两个条件都不满足 为false
Console.WriteLine(num1 < 10 || num2 > 25);
//num1<8为 false 取反为true
Console.WriteLine( !(num1<8) );
}
小奇:我感觉这些东西越来越只能了。我是不是马上就可以让计算机帮我去处理一些简单判断了。
老酷:明天就可以。
小奇:让我在看看这些内容。期待明天的内容。