如何在C#中获得while循环以单行打印

时间:2018-11-12 03:09:35

标签: c#

这是一项家庭作业,虽然我找到了一些有关使控制台在输出中写入行的答案,但它们要么用于另一种编程语言,要么影响了控制台垂直写入输出的方式。

我的代码

int i=1
while (i<22)
{
  if (i%2 ==1)
    Console.WriteLine(i);
  Console.WriteLine("\t");
  i++;
}

我发现的教程仍然可以垂直打印所有内容。我可以让他们水平打印吗?

3 个答案:

答案 0 :(得分:0)

您可以使用上面Vasily提到的Console.Write(...)方法,也可以在for循环内创建输出字符串,然后将该字符串输出为一行。我也将其更改为使用内联语句和for循环。即:

int i=1;
string output="";

for(int count = 0; count < 22; count++) {
    output += i % 2 == 1 ? i : "\t"; }

console.WriteLine(output);

如果在上面的代码中使用Console.Write()命令的优势将缩短一行,我只是更喜欢在输出任何内容之前先将鸭子放一行。

答案 1 :(得分:0)

这是递归函数的示例

...

$fields = $queryResult->getParameters()->getFields();

$parameters = [];
foreach($fields as $key => $field) {
    $parameters[$key] = self::get_field_value($field);
}

...

private static function get_field_value($field) 
{
    $kind = $field->getKind();
    if ($kind == "string_value")
        return $field->getStringValue();
    else if ($kind == "number_value")
        return $field->getNumberValue();
    else if ($kind == "bool_value")
        return $field->getBoolValue();
    else if ($kind == "null_value")
        return $field->getNullValue();
    else if ($kind == "list_value") {
        $list_values = $field->getListValue()->getValues();
        $values = [];
        foreach($list_values as $list_value)
            $values[] = self::get_field_value($list_value);

        return $values;    
    }
    else if ($kind == "struct_value")
        return $field->getStructValue();
}

然后致电private void Print(int counter, int end) { if (counter > end) return; if (counter % 2 == 1) Console.Write(counter); Console.Write("\t"); counter++; Print(counter, end); }

答案 2 :(得分:0)

尝试

            int i = 1;
            while (i < 22)
            {
                if (i % 2 == 1)
                    Console.Write(i+"\t");

                i++;
             }

输出1 3 5 7 9 11 13 15 17 19 21