提问人:Hash Slinging Slasher 提问时间:9/27/2023 更新时间:9/27/2023 访问量:64
为什么“总计”在当前语境中不存在?
Why does 'total' not exist in the current context?
问:
我正在尝试在不使用 Math.Pow() 的情况下将 n 打印到 p 的幂。 下面是伪代码:
从用户那里获取两个整数 n , p
使用 for 循环计算幂函数 n ** p,而不使用 Math.Pow() 方法。 输出结果
使用 while 循环重复计算 输出结果
使用 do-while 循环重复计算 输出结果。
我尝试以多种方式声明变量,并在 for 循环中返回总数。
using System;
public class Powers
{
public static void Main()
{
Console.WriteLine("Enter the base integer here:");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Enter exponent here:");
int p = int.Parse(Console.ReadLine());
for (int total = 1, counter = 1; counter <= p; ++counter)
{
total = total * n;
}
Console.Write($"{n} to the {p} power is {total}");
}
}
答:
2赞
Tim Roberts
9/27/2023
#1
子句中定义的变量仅存在于循环内部。如果你想让它在循环中幸存下来,你必须在外部定义它:for
for
int total = 1;
for (int counter = 1; counter <= p; ++counter)
{
total = total * n;
}
Console.Write($"{n} to the {p} power is {total}");
2赞
kio v
9/27/2023
#2
在块中声明的变量仅在循环体内可见,不能在循环外部访问。while/for
您应该将 的声明移出循环。喜欢这个total
while
int total = 1;
for (int counter = 1; counter <= p; ++counter){
total = total * n;
}
Console.Write($"{n} to the {p} power is {total}");
评论
1赞
kio v
9/27/2023
为了更好地理解,我更新了我的答案
上一个:而永无止境的循环 [关闭]
评论
b
int.Parse
int.TryParse
int.Parse
int.TryParse