c#入门-作用域

语句块

通常,一个语句块就是指一对大括号。
这对大括号和里面的语句合称语句块。

作用域

一个局部变量的作用域是它所在的语句块。
如果超出这个范围,这个变量是不存在的。
在这里插入图片描述
此外,不同语句块里可以申明同名的变量。
在这里插入图片描述
虽然一个变量在声明了以后才能使用。但是变量的作用域会往前面延申。
在这里插入图片描述

嵌入式语句

if,else,do,while,for,foreach等流程控制语句都可以后面不接语句块,而只接一个语句。
这样的语句称为嵌入式语句。嵌入式语句会被视为紧跟流程控制语句的语句块

Console.WriteLine("请输入一个数");
int i = int.Parse(Console.ReadLine());
if (i < 10)
	Console.WriteLine("你输入了一个个位数");
else if (i < 100)
	Console.WriteLine("你输入了一个两位数");
else if (i < 1000)
	Console.WriteLine("你输入了三位数");

嵌入式语句不能是声明语句,因为这仍有变量的作用域限制。
仅一个声明语句不具有意义。

不建议新手使用嵌入式语句,因为这很容易在修改时被忽略需要添加大括号。
而且,如果嵌入式语句自体也是流程控制语句,
你无法控制他跟随哪一个语句块。

int i = 10;
if (i > 0)
	if (i > 4)
		Console.WriteLine();
	else
		Console.WriteLine();
else
	Console.WriteLine();

流程控制中的条件部分声明变量的作用域

借由模式匹配或out参数,你可以在写条件的时候同时声明出一个变量。
在这里插入图片描述
具体而言,对于各流程控制语句声明变量的作用域,有以下情况:

  • if,switch等选择语句的条件部分声明的变量,可以作用到语句块后
  • while,do-while,for,foreach等循环语句的条件部分声明的变量,只作用于循环体内部。
  • 在switch选择及switch表达式的分支判断中声明的变量,只作用域此分支内部。
  • 在switch选择及switch表达式的分支语句块中声明的变量,作用于整个switch内部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值