在本站曾經(jīng)有兩篇文中分別實現(xiàn)在主方法中直接求1~50之間的奇數(shù)和與偶數(shù)和以及在某個類中定義方法來計算并輸出。
本文在此基礎(chǔ)上繼續(xù)探討在類中定義帶輸出型參數(shù)的方法來解決本題。具體思路如下:
(1)在類EvenOdd中定義循環(huán)的開始值和結(jié)束值;
(2)在類的構(gòu)造方法中由鍵盤輸入開始值及結(jié)束值,如果輸入有誤,則提示輸入錯誤,則自動進(jìn)入下一輪輸入,循環(huán)直到兩個數(shù)輸入正確為止;
(3)在類中定義求奇數(shù)和與偶數(shù)和的方法EvenOddSum,其帶有兩個輸出型參數(shù)even和odd,用于分別帶出其偶數(shù)和與奇數(shù)和;
(4)在測試類Test中定義主方法,定義類EvenOdd的實例和兩個整型變量,用于接收EvenOddSum帶出的兩個值,并將其輸出。
從以上敘述中可知,此方法具有通用性,可以求任何區(qū)間之間的奇數(shù)和與偶數(shù)和。
此方法中仍有需要探討的地方,如輸入的結(jié)束值比開始值小的情況,此程序處理起來會出現(xiàn)問題。
本案例源代碼如下:
using System;
namespace EvenOdd2
{
class EvenOdd
{
int begin; //開始值
int over; //結(jié)束值
bool isRight; //輸入正確與否
public EvenOdd()
{
isRight = false;
while(!isRight) //循環(huán)輸入,當(dāng)輸入正確時退出循環(huán)
{
try
{
Console.WriteLine("請輸入第一個數(shù):");
begin = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入第二個數(shù):");
over = int.Parse(Console.ReadLine());
isRight = true;
}
catch
{
Console.WriteLine("數(shù)據(jù)格式錯誤,請重新輸入!");
isRight = false;
}
}
}
/// <summary>
/// 求出偶數(shù)和奇數(shù)之和
/// </summary>
/// <param name="even">輸出型參數(shù),保存偶數(shù)之和</param>
/// <param name="odd">輸出性參數(shù),保存奇數(shù)之和</param>
public void EvenOddSum(out int even,out int odd)
{
even = 0;
odd = 0;
for(int i = begin;i<=over;i++)
{
if(i%2==0)
even += i;
else
odd += i;
}
}
/// <summary>
/// 返回開始值
/// </summary>
/// <returns>開始值</returns>
public int RetBegin()
{
return begin;
}
/// <summary>
/// 返回結(jié)束值
/// </summary>
/// <returns>結(jié)束值</returns>
public int RetOver()
{
return over;
}
}
class Test
{
/// <summary>
/// 應(yīng)用程序的主入口點。
/// </summary>
static void Main(string[] args)
{
int evenSum,oddSum;
EvenOdd eo = new EvenOdd();
eo.EvenOddSum(out evenSum,out oddSum);
Console.WriteLine("{0}~{1}之間的偶數(shù)之和為:{2},奇數(shù)之和為:
{3}",eo.RetBegin(),eo.RetOver(),evenSum,oddSum);
}
}
}
運行結(jié)果為:

新聞熱點
疑難解答