代码基础知识-13自增

在对变量赋值时如果是a=a+3这样的,有种简单的形式
a+=3
而对于+1,-1还可以写作a++,a--这种形式


加后赋值,按位与后赋值,乘方后赋值

string a="";
a+="12";//string的加后赋值
bool t=true;
t&=true;
int i=18;
i^=2;
i%=4;

&&=不可用


赋值不止是操作语句,他同时具有返回值

int a;
Console.WriteLine(a=12);

赋值号左边只能是变量

int a,b;
a=4+b=15;

如需使用此语句需加括号

int a,b;
a=4+(b=15);

自增,自减

int a=0;
a++;
Console.WriteLine(a);

a++和++a单独做赋值使用没有区别
区别在于返回值
a++是先获取a的值再做自增

int a=0;
Console.WriteLine(a);
Console.WriteLine(a++);
Console.WriteLine(a);

++a则先自增再获取a的值

int a=0;
Console.WriteLine(a);
Console.WriteLine(++a);
Console.WriteLine(a);

测试按位与和逻辑与

有了a++就可以容易的观察出&的全部运行和&&的短路运行了

			int a = 0;
			if (false & ++a > 0) {
    
     }
			Console.WriteLine(a);
			a = 0;
			if (false && ++a > 0) {
    
     }
			Console.WriteLine(a);

三目运算符

int a=0;
Console.WriteLine(a%2==0?"双数":"单数");

三目运算符会判断[?]左边的bool值,如为true则返回[:]左边的值,如为false则返回右边的值
类似于if-else
但不会判断不可达代码

三目运算符是一个表达式
因此不能单独放置
单独放置的三目运算符等效于

  12;

三目运算符属于表达式,所以是有类型的。
这要求待返回的值需要能转化为同一个类型。并在编译器里视作这个类型
如果表达式里没有变量成分就是常量

你可以同时执行操作语句

int a=0;
a=true?a=12:a=13;

赋值语句会从右到左计算,但三目运算符是从外到内计算的,不会在判断前先算结果

int a=0;
a=true?a++:a++;
Console.WriteLine();

三目运算符的连用和嵌套

三目运算符的连用:a=b?c?d?1:2:3:4
此用法类似于

			if (b)
			{
				if (c)
				{
					if (d ){ a = 1; }
					else { a = 2; }
				}
				else { a = 3; }
			}
			else { a = 4; }

最右侧值对应最左侧bool的false
右二对应左二bool的false
最内侧的值对应bool的全部true

嵌套不讲

猜你喜欢

转载自blog.csdn.net/zms9110750/article/details/106600968