我正在编写一个解决特定数学问题的程序。以下是该计划的代码段(' ......'表示我已经删除了代码):
Console.Write("First Natrual Number: ");
long N1 = Convert.ToInt64(Console.ReadLine());
...
Console.Write("Upper Product Limit (to & excluding): ");
long L = Convert.ToInt32(Console.ReadLine());
//Determines upper limits of sums.
double L1_temp = (L / N1);
...
if ((L%N1) == 0)
{
long L1 = Convert.ToInt64(L1_temp - 1);
}else
{
long L1 = Convert.ToInt64(Math.Floor(L1_temp));
}
...
//Calculating Product Sums.
long S1 = 0;
long a = L1; •
while(a > 0)
{
S1 += (N1 * a);
a -= 1;
}
当我尝试在Visual Studio中构建程序时,我得到错误"名称' L1'在当前上下文中不存在"。标有子弹点(•)的行是显示上述错误的行。
有人知道为什么会出现这种错误,因为' L1'在上面的if语句中定义,以及如何解决它?
答案 0 :(得分:2)
名称的范围限定为C#中的块。当你有
{
var n = whatever;
}
...
{
var n = whatever;
}
然后你有两个名为n 的变量。
将变量声明置于要在以下位置使用变量的块级别:
long l1;
if (whatever)
{
l1 = whatever;
}
else
{
l1 = whatever;
}
// l1 is still in scope here.
答案 1 :(得分:0)
你需要这样做
#include <Eigen/Dense>
MatrixXf m(4, 3);
m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
MatrixXf dots(4, 1)
dots << 2,2,2,2;
代码中的L1(2个不同的)只存在于if和else条件块
中答案 2 :(得分:0)
在If语句中创建了L1。它们不存在于该上下文/范围之外。
而是这样做:
<input type="text" name="saa_<?php echo $row1['Tube_No']; ?>" value="<?= $row1['Pin_No']; ?>">
答案 3 :(得分:0)
尝试在if else语句之外声明L1,如下所示:
git format-patch <sha_id_from>...<sha_id_to> <path1> <path2>