C#(三)基础篇—方法,递归,条件分支,循环,三元操作符

  • 2020 年 12 月 3 日
  • 笔记

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