多个while条件

本文关键字:条件 while 多个 | 更新日期: 2023-09-27 18:14:35

我想在控制台输出一个定时器,从00h00m00s到23h59m59s。我的代码只输出到00h00m59s。一定是条件在之后的一段时间,但我认为这是正确的。谁知道怎么解决这个问题?

static void Main(string[] args)
    {
        int uur = 0;
        int min = 0;
        int sec = 0;
        while (uur != 23 && min!=60 && sec!=60)
        {
            if (sec == 60)
            {
                min++;
                sec = 0;
            }
            if (min == 60)
            {
                uur++;
                min = 0;
            }
            string strSec = String.Format("{0:00}", sec);
            string strMin = String.Format("{0:00}", min);
            string strUur = String.Format("{0:00}", uur);
            Console.WriteLine(strUur + "h" + strMin + "m" + strSec + "s");
            sec++;
        }
        Console.ReadLine();
    }

多个while条件

使用以下条件:

while (uur != 23 || min != 59 || sec != 60)

您可能还想尝试这种更简单的方法:

int total_second_in_day = 24*60*60;
for (int second_in_day = 0; second_in_day < total_second_in_day; second_in_day++)
{
    int uur = second_in_day / 3600;
    int min = (second_in_day % 3600) / 60;
    int sec = (second_in_day % 3600) % 60;
    string strSec = String.Format("{0:00}", sec);
    string strMin = String.Format("{0:00}", min);
    string strUur = String.Format("{0:00}", uur);
    Console.WriteLine(strUur + "h" + strMin + "m" + strSec + "s");
}
Console.ReadLine();

虽然你的问题基本上是关于理解while条件,但这就是你如何实现所有时间的打印:

using System;
public class Program
{
    public static void Main()
    {
        var time = new TimeSpan(0,0,0,0);
        var oneSec = new TimeSpan(0,0,0,1);
        var wakeywakey = new TimeSpan(0,23,59,59);
        while (time <= wakeywakey)
        {
            Console.WriteLine(time);
            time += oneSec;
        }
    }
}