设立前置条件
//class里创建
/// <summary>
/// 班级成员
/// </summary>
/// <value></value>
static string[] myClass = new string[] { "张三", "李四", "王五", "赵六", "田七", "周八" };
//Main里创建
int x = 0;
bool y=false;
创建函数功能单一且需要重复使用的语句为函数
/// <summary>
///分析赵六不在班级里的情况
/// </summary>
/// <param name="a">赵六所在的位置</param>
/// <returns>false不在true在</returns>
private static bool ToForgive(int a)
{
if (a >= myClass.Length)
{
Console.WriteLine("赵六不在这个班级里");
return false;
}
else
{
return true;
}
}
/// <summary>
/// 分析赵六不在班级里的情况
/// </summary>
/// <param name="a">赵六所在的位置</param>
/// <param name="b">false不在true在</param>
private static void ToForgive(int a,out bool b)
{
if (a >= myClass.Length)
{
Console.WriteLine("赵六不在这个班级里");
b= false;
}
else
{
b= true;
}
}
/// <summary>
/// 分析赵六不在班级里的情况
/// </summary>
/// <param name="a">赵六所在的位置</param>
/// <param name="b">false不在true在</param>
private static void ToForgive(ref int a,ref bool b)//如果传参是 int a,ref bool b则会报错,因为重载不会区分ref和out
{
if (a >= myClass.Length)
{
Console.WriteLine("赵六不在这个班级里");
b= false;
}
else
{
b= true;
}
}
for循环
for (int i = 0; i < myClass.Length; i++)
{
x = i;
if (myClass[i] == "赵六")
{
break;
}
if(i==myClass.Length-1 && myClass[i] != "赵六")
{
x++;
}
}
ToForgive(x,out y);
if (y)
{
Console.WriteLine("由for得出赵六在第" + (x + 1) + "个位置");
}
x = 0;
while循环
while (x < myClass.Length)
{
if (myClass[x] == "赵六")
{
break;
}
x++;
}
ToForgive(ref x,ref y);
if (y)
{
Console.WriteLine("由while得出赵六在第" + (x + 1) + "个位置");
}
x = 0;
do while与while不同的是第一次循环
do while一定会进入循环体,在执行完循环体后进行判断
while不一定会进入循环体,先进行判断再进入循环体
do
{
if (myClass[x] == "赵六")
{
break;
}
x++;
} while (x < myClass.Length);
if(ToForgive(x))
{
Console.WriteLine("由do while得出赵六在第" + (x + 1) + "个位置");
}