网站代运营多少钱,孝感网站建设 付款方式 银行,小公司根本办不了icp许可证,免费网站建设报价上一篇#xff1a;
C##xff0c;入门教程(08)——基本数据类型及使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123906998 一、算术运算符号
算术运算符号包括#xff1a;四则运算 加 , 减-, 乘*, 除/与取模%。
// 加法#xff0c;运算
int va 1 …上一篇
C#入门教程(08)——基本数据类型及使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123906998 一、算术运算符号
算术运算符号包括四则运算 加 , 减-, 乘*, 除/与取模%。
// 加法运算
int va 1 2;
int vb va 3;
int vc va vb;// 加法运算还可以用于将两个或更多字符串或变量连接起来
string sa Hello;
string sb World;
string sc sa sb;// 特殊情况!字符串与数字连接起来数字自动转为字符串
string sd sa va;// 减法运算
int ga 1 - 2;
int gb ga - 3;
int gc ga - gb;// 乘法运算
int fa 1 * 2;
int fb fa * 3;
int fc fa * fb;// 除法运算
int ka 300 / 2;
int kb ka / 30;
int kc ka / kb;// 取模计算
int ya 10 % 3;// 点到为止
// 四则运算符号如果被重载可以用于 矩阵 等高等级数据集合的运算
// 比如下面三个矩阵 mAmBmC 的乘法关系
Matrix mC mA * mB;使用禁忌
1乘法就需要注意结果是否会超过值范围。 特别情况可以先转为 double 计算最后再归整。
2所有的除法语句之前一定要加上 除0的检查
int b F(20);
int c 100;// 错误
int a c / b;// 准确
if ( b ! 0)
{a c / b;
}// 如果 d 是浮点数则应该这样写
double d G(2.0);
if ( Math.Abs(d) float.Epsilon )
{a c / d;
}又
没有运算符重载是 Go 语言的最大败笔远离了数学就远离了精华。
没有大括号是 python 语言的最大败笔远离了代码的可维护性就远离了可靠性。 二、逻辑运算
计算机的逻辑只有三种情况与或非。
1、与AND两个条件均满足
比如a 0 AND a10 用代码表示就是
(a0) (a10)
2、或or,两个之一满足
比如a 0 OR a10 用代码表示就是
(a0) || (a10)
3、非not,不满足
比如: not a0用代码表示就是 !(a0)
这其实很别扭。建议能不用 就不用
使用禁忌
再简单的逻辑也用括号括起来无论是老手或新人这个错误经常出现而且不好找
// 错误
a0 a10// 错误需要两个
(a0) (a10)// 正确
(a0) (a10)
这里面还有一个维护性的问题30年编程老牛给出的一点良心建议。
// 通常写法
// 不好维护容易出错!
if ( a 11 b 22)
{;
}// 稍微好点
if ( (a 11) (b 22))
{;
}// 好的写法
if ( a 11 )
{if ( b 22 ) {;}
}三、比较运算符
1、等于 表示两边表达式运算的结果相等注意是两个等号
int a 10;
int b 11;if ( a b ) dosomething();
if ( a ! b ) dosomething();
if ( a b ) dosomething();
if ( a b ) dosomething();
if ( a b ) dosomething();
if ( a b ) dosomething();// 如果是两个浮点数的 等于
double c;
double d;
// 错误
if ( c d )
{;
}
// 正确
if ( Math.Abs(c-d) float.Epsilon )
{;
}2、不等于!
! 表示两边表达式运算的结果不相等
3、大于 表示左边表达式的值大于右边表达式的值
4、小于 表示左边表达式的值小于右边表达式的值
5、大于等于 表示左边表达式的值大于等于右边表达式的值
6、小于等于 表示左边表达式的值小于等于右边表达式的值
四、按位运算
按位运算是从 C/C 继承过来的运算符号。 如果
如果你是
如果你是初学者可以放弃后面的内容啦
如果你尚未到达一定的水平可以先飘过 1、按位与
按位与。两个运算数都为 1则整个表达式为 1否则为 0;也可以对布尔型的值进行比较相当于“与”运算但不是短路运算。 2、按位或|
按位或。两个运算数都为 0则整个表达式为 0否则为 1;也可以对布尔型的值进行比较相当于“或”运算但不是短路运算。
3、按位非~
按位非。当被运算的值为 1 时运算结果为 0;当被运算的值为 0 时运算结果为 1。该操作符不能用于布尔型。对正整数取反则在原来的数上加 1然后取负数对负整数取反则在原来的数上加 1然后取绝对值。
4、按位异或^
按位异或。只有运算的两位不同结果才为 1否则为 0。
5、左移
左移。把运算符左边的操作数向左移动运算符右边指定的位数右边因移动空出的部分 补 0。
6、有符号右移
有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值左侧因移动空出的部分补 0;如果是负值左侧因移动空出的部分补 1。
7、无符号右移
无符号右移。和 的移动方式一样只是不管正负因移动空出的部分都补 0。 五、C#运算符的禁忌与忠告
1、尽可能多的
你完全不需要学习任何的运算符优先级知识不要依靠编译器解决运算符优先级问题务必直接用 ( ) 来确定表达式的层次优先级、范围。
// 不好
double a b c * d / e - g;// 好
double a b (c * d) / e - g;2、尽量不用多个 || !
可以用多层次的判别代替多个逻辑条件组合越多错误越多 下一篇
C#入门教程(10)——常量、变量与命名规则的基础知识https://blog.csdn.net/beijinghorn/article/details/123913570