c#基础入门(2)——语法结构、方法、关键字

一、语法结构

1、顺序结构
代码按照先后顺序一行一行往下执行
2、分支结构

if()
{}
else
{}

3、选择结构

if()
{}
else if()
{}
else if()
{}
switch(type)
{  case"a":break;
   case"b":break;
   default:break;
}

switch-case结构可以简化,代码如下:

switch(type)
{  case"a":fun1();break;
   case"b":fun1();break;
   case"c":fun2();break;
   default:fun3();break;
}
//可简化为
switch(type)
{  case"a":
   case"b":fun1();break;
   case"c":fun2();break;
   default:fun3();break;
}

4、循环结构

//一般用于循环次数明确的情况
for()
{}
//一般用于遍历某一集合
foreach()
{}
//一般用于循环次数不确定的情况,执行次数>=0
while()
{}
//一般用于循环次数不确定的情况,不过执行次数>=1,注意while后边的分号
do{}while();

二、方法

1、out
在调用方法之前不一定对其赋值,在被调用的方法中一定要对out参数进行赋值

static void Main(string[] args)
{
    #region out
    int num1 = 3;//此处不对num1赋值也行
    Func func = new Func();
    func.GetLength("abcde", out num1);
    Console.WriteLine("num1=" + num1);//输出num1=5 
    #endregion
}
class Func
{
    public void GetLength(string str,out int num1)
    {
        num1 = str.Length;//在方法体中一定要对num1进行赋值
    }
}

2、ref
在调用方法之前一定要对ref参数进行赋值,在方法中不一定对其赋值

static void Main(string[] args)
{
   #region ref
   int numOne = 12;
   int numTwo = 8;
   Func func = new Func();
   func.Change(ref numOne, ref numTwo);
   //输出numOne=8,numTwo=12,此时numOne与numTwo已经互换
   //若此处用两个out参数则不能实现互换
   Console.WriteLine("numOne={0},numTwo={1}", numOne, numTwo); 
   #endregion
}
class Func
{
   public void Change(ref int numOne, ref int numTwo)
   {
       int temp = numTwo;
       numTwo = numOne;
       numOne = temp;
   }
}

3、params
当方法有多个参数的时候,params参数必须是最后一个参数

static void Main(string[] args)
{
    Func func = new Func();
    string result = func.UseParams("first", "second", "third");
    string result2 = func.UseParams("abc", "AA", "BB","CC","DD");
    //输出result=firstsecond
    Console.WriteLine("result=" + result);
    //输出result2=abcAA
    Console.WriteLine("result2=" + result2); 
}
class Func
{
    public string UseParams(params string[] strArray)
    {
        return strArray[0] + strArray[1];
    }
}

4、重载
同一类中方法名相同参数类型或个数不相同(与返回值无关),这样的多个方法叫做方法重载
例如:

class MyClass
{
   //以下两个方法属于重载
   public void Compare(int num1,int num2,int num3)
   {......}
   public void Compare(int num1,int num2)
   {......}
   //以下两个方法不属于重载
   public void Compare(int num1,int num2)
   {......}
   public bool Compare(int num1,int num2)
   {......}
}

5、递归
递归是很重要的思想,递归结束点叫做递归出口
利用递归求n的阶乘:

static void Main(string[] args)
{
    Func func = new Func();
    int result = func.GetResult(5);
    //输出result=120
    Console.WriteLine("result=" + result);
}
public int GetResult(int num)
{  
   if(num>1) 
      return num*GetResult(num-1);
   //当num=1时递归不再继续,因此num=1为递归出口
   else 
      return num;
}

三、关键字

1、break
在循环结构中跳出本层循环:

for(int i=0;i<5;i++)
{
   for(int j=0;j<5;j++)
   {
       if(j==3) break;
       Console.WriteLine("j="+j); 
   }
}

运行结果图如下:
这里写图片描述
跳出switch-case结构:

switch(type)
{  case"a":fun();break;
   case"b":fun1();break;
   case"c":fun2();break;
   default:fun3();break;
}

2、continue
立即结束本层本次循环,如果循环未结束则继续执行本层下一次循环

for(int i=0;i<5;i++)
{
   for(int j=0;j<5;j++)
   {
       if(j==3) continue;
       Console.WriteLine("j="+j); 
   }
}

运行结果截图如下:
这里写图片描述
3、return
在有返回值的方法中返回所需返回值

public string GetString()
{
   return "guoguo";
}

在没有返回值的方法中,return可以立即结束该方法

//输出one two
public void Show()
{
   Console.WriteLine("one");
   Console.WriteLine("two");
   return;
   Console.WriteLine("three");
}

运行结果截图如下:
这里写图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值