技术 gin 关于 其中 logs -s 来看 spa
作为一个初学者,学习中会遇到很多问题。有些问题我们不知道为什么错了,因为在我们看来,是没有任何问题的,比如在学 if 判断的时候,遇到的一个问题:
- inta,b=5;
- if(b>3)
- a=1;
- else if(b<=3)
- a=0;
- Console.WriteLine(a);
代码意思很简单,如果 b 大于 3,a=1。如果不小于等于 3,a=0。然后输出 a。
但是系统会在最后红色 a 处提示 "使用了未赋值的局部变量 a"。
而我们回过头来看看,发现不管 b 等于多少,我们都给 a 赋值了啊?为什么会报错 a 未赋值呢?
下面我说说我的理解看法,有不对的地方请指正。
在上面代码中,a 开始是没有值的,我们使用 if 判断来给 a 初始化,符合 if 和 else if 其中一个条件时,a 当然有值,但如果这两个条件都不符合的时候,判断结束,a 仍没有值,这就是报错的原因。因为条件为真(if 和 else if)时 a 有值(1 或 0),条件为假(else)时,没有执行任何程序,所以没有给 a 赋值。首先我们知道 if 判断语句分为三部分 if(如果条件 1)、else if(如果条件 2)、else(否则)三部分,其中 if 个数为 1 个,else if 的个数为任意,else 的个数为 0 个或 1 个。其中 if 和 else if 表示符合条件后,条件为真,进行相应的动作,如果不符合条件,就是条件为假时,就执行 else。
所以,在 if 判断中,条件成立(if、else if)加上条件都不成立(else),才是以个完整的整体。
当然如果在声明时已经初始化了,两个条件都不符合,a 还是原来初始化时的值,是有值的不会报错。
当然有人问,if(b>3) 和 else if(b<=3)已经把 b 所在的所有范围都包含了,但计算机只考虑条件内条件外,条件外没有相应代码,就不执行了。而且退一步说,如果 b 为虚数(比如)呢,就是 else 的范围了。
所以用 if 判断来给变量初始化时,就不要省略 else 了。
(初学者) 关于用 if 对变量初始化的问题
来源: http://www.bubuko.com/infodetail-2015948.html