zoukankan      html  css  js  c++  java
  • C#(三)基础篇—方法,递归,条件分支,循环,三元操作符

    C#

    本随笔为个人复习巩固知识用,多从书上总结与理解得来,如有错误麻烦指正

    2020-12-03

    1.方法

    static void Main(string[] args)
            {
                float Sum(float a, float b)  //定义一个方法,返回值浮点型,标识符ADD
                {
                    return a + b;
                }
                float number1 = 5;
                float number2 = 10;
          
    
                float number3 = Sum(number1, number2);//先执行sum方法再将返回值赋值给number3
                Console.WriteLine(number3);   //输出值
    
            }

    如果方法的参数是内置参数,则在方法内部引用的是参数的副本,方法内的运算不会影响到参数本身。如果希望在方法内改变内置类型参数值,需要添加ref或out标识符

    我所学习的书中示例也是出现了另一个错误,Change中和下方定义的变量不能重复,将Change中a变为b即可解决

    static void Main(string[] args)
            {
                void Change(ref int b)
                {
                    b += 10;
                }
    
                int a = 0;
                Change(ref a);
                Console.Write(a);
    
            }

    也可将ref替换为out,区别是需要在方法中初始化变量再使用它

    static void Main(string[] args)
            {
                
                void Change(out int a)
                {
                    a = 0;
                    a += 10;
    
                }
    
                int b = 0;
                Change(out b);
                Console.Write(b);
    
            }

    2.递归

    在方法中调用当前方法叫递归

    static void Main(string[] args)
            {
                
               
                void Print( int n)
                {
                    
                    if (n == 0)
                    {
                        Console.WriteLine(n);
                        return;
                    }
                    else
                    {
                        Console.WriteLine(n);
                        Print(n - 1);
                    }
                }
                int a = 10;
                Print(a);
    
            }

    要注意递归一定要有退出条件,输出的前后顺序也会影响输出结果,递归与普通循环相比效率更低,不适合项目,适合试题

    3.条件分支语句

    常使用到if,else,switch等关键词

    在上面递归中就用到了if,即if后的判断为true时执行if{}里的语句,具体可以参考上面

    switch语句作用与if类似,可读性更佳

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
            enum FRUIT
            {
                Apple=0,
                Banana,
                Cherry,
            }
            static FRUIT fruit = FRUIT.Apple;
    
            static void Main(string[] args)
            {
                switch(fruit)
                {
                    case FRUIT.Apple:             //如果fruit的值等于FRUIT.Apple
                        Console.WriteLine("Apple"); 
                        break;// 使用break退出
    
                    case FRUIT.Banana:
                        Console.WriteLine("Banana");
                        break;
    
                    case FRUIT.Cherry:
                        Console.WriteLine("Cherry");
                        break;
    
                        
                }
                //上述语句等价于
                if (fruit == FRUIT.Apple)
                { 
    
                    Console.Write("Apple");
                }
                else if (fruit == FRUIT.Banana)
                {
                    Console.Write("Banana");
                }
                else if (fruit == FRUIT.Cherry)
                {
                    Console.Write("Cherry");
                }
                Console.ReadKey();//按任意键退出
    
    
    
            }
        }
    }

    4.循环语句

    while语句是一个条件循环语句,每次循环返回一个逻辑表达式值,只有表达式值为false时才会退出循环,使用时要注意不要陷入死循环

    int n=0;
    while(n<10)  //如果n<10,则会一直循环{}中语句
    {
    n++;     //如果n为10时退出循环
    }

    for语句与while类似,都是条件循环语句,不同的是,for语句可以更方便的控制循环次数

    for(int i=0;i<10;i++)   //i初始值为0,i小于10会循环,每次循环加一
    {
    //循环10次
    }

    很多时候,需要在循环中直接退出或者不再执行剩下语句继续下一个循环,可以使用break和continue

    int n=10;
    while(true)
    {
    if(n==5)//当n=5时,直接退出循环
     {break;}
    n--;
    }
    
    
    
    forint i=0;i<10;i++)
    {
    if(i==5)
    {continue;}   //当i=5,将跳过其他代码直接下一个循环
    //其他代码
    
    
    
    }

    5.三元操作符

    作用与if类似,条件表达式为true执行表达式1,否则执行表达式2

    //条件表达式?表达式1:表达式2
    int a=50,b=100;
    int max = a>b?a:b

    max值为100

  • 相关阅读:
    Lc112_路径总和
    多线程(4)
    Lc257_二叉树的所有路径
    Lc226_翻转二叉树
    Lc145_二叉树的后序遍历
    Lc144_二叉树的前序遍历
    Lc102_二叉树的层序遍历
    Lc101_对称二叉树
    Lc100_相同的树
    Lc94_二叉树的中序遍历
  • 原文地址:https://www.cnblogs.com/zzuadj/p/14076412.html
Copyright © 2011-2022 走看看