1

我有这个代码:

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _121119_zionAVGfilter_Nave
{
    class Program
    { 
        static void Main(string[] args)
        {
            int cnt = 0, zion, sum = 0;
            double avg;
            Console.Write("Enter first zion \n");
            zion = int.Parse(Console.ReadLine());
            while (zion != -1)
            {
               while (zion < -1 || zion > 100)
            {
                Console.Write("zion can be between 0 to 100 only! \nyou can rewrite the zion here, or Press -1 to see the avg\n");
                zion = int.Parse(Console.ReadLine());
            }

                cnt++;
                sum = sum + zion;
                Console.Write("Enter next zion, if you want to exit tap -1 \n");
                zion = int.Parse(Console.ReadLine());


            }
            if (cnt == 0)
            {
                Console.WriteLine("something doesn't make sence");
            }
            else
            {
                avg = (double)sum / cnt;
                Console.Write("the AVG is {0}", avg);

            }
       Console.ReadLine(); }
    }
}

这里的问题是,如果一开始我输入一个负数或大于百的数字,我会收到这样的消息:“zion 只能在 0 到 100 之间!\n你可以在这里重写 zion,或者按 -1 来查看平均\n"。
如果我然后 meenter -1,这会显示而不是 AVG:“输入下一个 zion,如果你想退出 tap -1 \n。”
我该如何解决这个问题,所以当数字为负数或大于百并且点击 -1 时,我将看到 AVG 而不是另一条消息?

4

2 回答 2

1

只需将您不想在if这样的语句中执行的代码附上

if(zion != -1)
{
      cnt++;
      sum = sum + zion;
      Console.Write("Enter next zion, if you want to exit tap -1 \n");
      zion = int.Parse(Console.ReadLine());
      if (cnt != 0){}
}
于 2012-11-23T10:54:16.157 回答
1

您只需添加一个标志变量即可。

namespace _121119_zionAVGfilter
{
    class Program
    { 
        static void Main(string[] args)
    {
        int cnt = 0, zion, sum = 0;
        double avg;
        int flag = 0;
        Console.Write("Enter first zion \n");
        zion = int.Parse(Console.ReadLine());
        while (zion != -1)
        {                 
            while (zion < -1 || zion > 100)
            {
                Console.Write("zion can be between 0 to 100 only! \nyou can rewrite the zion here, or Press -1 to see the avg\n");
                zion = int.Parse(Console.ReadLine());
                if(zion== -1)
                    flag = 1;
            }                
            cnt++;
            sum = sum + zion;
            if (flag == 1)
                break;
            Console.Write("Enter next zion, if you want to exit tap -1 \n");
            zion = int.Parse(Console.ReadLine());
            if (cnt != 0) { }

        }
        if (cnt == 0)
        {
            Console.WriteLine("something doesn't make sence");
        }
        else
        {
            avg = (double)sum / cnt;
            Console.Write("the AVG is {0}", avg);                
        }            
        Console.ReadLine(); 
      }
    }
}
于 2012-11-23T11:05:58.020 回答