在c#中使用循环创建数字及其平方的列表

本文关键字:列表 数字 创建 循环 | 更新日期: 2023-09-27 18:02:10

我想在c#中使用for循环创建一个数字及其平方的列表。

现在我有:

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int counter;
            int square = 1;
            const int maxValue = 10;

            Console.WriteLine("Number  Square");
            Console.WriteLine("-------------------");
            {
                for (counter = 1; counter <= maxValue; counter++)
                    square = counter ^ 2;
                Console.WriteLine("{0}   {1}",  counter, square);
            }
         }
      }
   }

但是我的输出只是一个11和一个8。

当我把"square = counter ^ 2"放在变量声明下面时,我最终得到一列数字1-10,但第二行只是一堆3,如果它们被设置为0,它们就是2。如果我没有设置计数器变量,它也会给我一个错误来声明它。

当我把方程放在它现在的位置时,它要求将平方变量声明为某种东西(在这里它是1)。

而且我是一个初学者,我还没有学过类,所以我希望任何更正都不要包括它们。

修正,天哪,我上次没有犯这个错误,是的,我需要更多的练习。抱歉

在c#中使用循环创建数字及其平方的列表

您不小心使用了for循环块声明的简写。

for语句后跟花括号,以指示要执行的代码块。然而,如果你跳过大括号,它只会抓取"下一行"。在您的示例中,在循环中只执行square = counter ^ 2;。但是,^操作符是用于xor操作的,而不是用于pow操作的。

你想要这样:

Console.WriteLine("Number  Square");
Console.WriteLine("-------------------");
for (counter = 1; counter <= maxValue; counter++)
{
    square = counter * counter;
    Console.WriteLine("{0}   {1}",  counter, square);
}

大括号的位置很重要:

 Console.WriteLine("Number  Square");
 Console.WriteLine("-------------------");
 for (counter = 1; counter <= maxValue; counter++)
 {
     square = counter * counter;
     Console.WriteLine("{0}   {1}",  counter, square);
 }

注意:正是由于这个原因,for循环和if语句总是使用大括号是一个很好的实践。

还请注意,^不是"to power of",而是排他性的或

在你的计数器循环中试试:

for (counter = 1; counter <= maxValue; counter++)
{
   square = Math.Pow(counter, 2);
   Console.WriteLine("{0}   {1}",  counter, square);
}

^操作符不是用于此目的的。请使用System.Math.Pow()。例子:var square = Math.Pow(3, 2)。这将得到9.

for循环处于简写模式。您的console.writeline在for循环之外。

尝试用

替换这些行
for (counter = 1; counter <= maxValue; counter++)
{
  square = counter * counter;
  Console.WriteLine("{0}   {1}",  counter, square);
}

注意^在c#中不是幂运算符。

square = counter ^ 2 ??这里^是一个异操作

这样做:
square = counter * counter;


{
    square = counter * counter;
    Console.WriteLine("{0}   {1}",  counter, square);
}

inside for - loop

或者最好用数学。战俘方法

我将使用:

    private void sqtBtn_Click(object sender, EventArgs e)
    {
        outputList.Items.Clear();
        int itemValue, sqt;
        for (int i = 0; i < randomNumAmount; i++)
        {
            int.TryParse(randomList.Items[i].ToString(), out itemValue);
            outputList.Items.Add(Math.Sqrt(itemValue).ToString("f"));
        }
    }