第4章 流程控制

98 阅读1分钟

第4章 流程控制

4.1 条件分支

// 单分支
if(){} else{}
​
// 多分支
if(){} else if(){} else{}
// 输入一个年份,判断该年是不是闰年。是的话输出Yes,不是的话输出No
// 闰年的条件 能被400整除  或者 能被4整除但是不能被100整除
static void Main(string[] args)
{
    // 输入一个年份,判断该年是不是闰年。是的话输出Yes,不是的话输出No
    string inputN = Console.ReadLine();
    int year = Convert.ToInt32(inputN);
    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
        Console.WriteLine("是闰年");
    }
    else {
        Console.WriteLine("不是闰年");
    }
}

4.2 switch分支

switch(){
    case 1:
    break;
    default:
    break;   
}

4.3 while循环

while (){}
// 3个可乐瓶可以换一瓶可乐,现在有364瓶可乐,问一共可以喝多少瓶可乐,剩下几个空瓶。
static void Main(string[] args)
{
    Console.WriteLine("请输入你拥有的瓶数:");
    int bottle = Convert.ToInt32(Console.ReadLine());
    int drinkNum = bottle;
    int emptyNum = bottle;//第一次喝完就得到了所有的空瓶子
    while (emptyNum > 2) {
        drinkNum += emptyNum / 3;//总瓶数 = 第一次总的 + 剩余空的去换
        emptyNum = emptyNum / 3 + emptyNum % 3;//还有得空瓶子 = 去换完的空瓶子+换不掉的
    }
    Console.WriteLine("剩下{0}个空瓶子,喝了{1}瓶饮料",emptyNum,drinkNum);
}

4.4 do…while循环

do{} while(条件表达式);

4.5 for循环

for(初始化;条件表达式;增量表达式){}
// 输入一个正整数n,输出n层的菱形。
static void Main(string[] args)
{
    // 输入整数n,输出n层的三角形
    Console.WriteLine("please input one num:");
    int target = Convert.ToInt32(Console.ReadLine());
    // 外层循环控制打印轮数
    for (int i = 0; i < target; i++)
    {
        // 循环控制空格输出
        for (int j = target - i - 1; j > 0; j--)
        {
            Console.Write(" ");
        }
        // 循环控制打印星号
        for (int k = 0; k < 2 * i + 1; k++)
        {
            Console.Write("*");
        }
        // 每轮循环结束打印换行
        Console.WriteLine();
    }
    for (int l = 0; l < target - 1; l++) {
        for (int m = 0; m < l + 1; m++) {
            Console.Write(" ");
        }
        for (int n = 0; n < 2 * (target - 1 - l) - 1; n++) {
            Console.Write("*");
​
        }
        Console.WriteLine();
    }
}
// 冒泡排序,从小到大排序
int temp = 0;//用于交换两数值的临时变量
int[] arr = { 1, 52, 23, 4, 5, 34, 123423, 112, -1 };//  arr.Length=5 
//有n个数只要循环n-1次
for (int i = 0; i < arr.Length - 1; i++)
{
    //内存循环用于比较大小,从第二个数开始比较
    for (int j = i + 1; j < arr.Length; j++)
    {
        if (arr[i] > arr[j])
        {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
}
foreach (int j in arr)
{
    Console.Write("{0}\t", j);
}

① break:跳出当前整个循环

② continue:跳出当前这一次循环,继续执行下一次循环的内容