c#中跳出循环(return/break/continue)和方法的三种参数(out/ref/params)

C# 中的循环控制与方法参数详解:return/break/continue & out/ref/params
本文详细探讨了C#中如何跳出循环,包括return、break和continue的用法。同时,讲解了方法的三种参数类型:out用于返回多个值,如int.TryParse;ref参数通过引用传递,允许在方法内修改变量;params关键字用于定义可变参数的方法,允许接受任意数量的相同类型参数。

一…c#中跳出循环(return/break/continue)

return:跳出循环直到代码块结束;
break:跳出循环进行循环之后的代码;
continue:跳出当前次循环,进行新的下一次循环.

二.方法的三种参数(out/ref/params)

(1)按输出传递参数(out):
这种方式可以返回多个值
例如:int.tryparse:至少返回两种类型:一种是判断这个字符串是否能够转换成int类型的结果true/false,另一个数值是转换成int之后的整数.
方法中的out参数在方法体结束时,需要准备一个相同类型的变量接收out类型的结果,并且必须带out类型的关键字.
遇到方法中的形参是out或者ref类型,则在调用方法的时候同样实参也必须带有out或者ref关键字.
例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _05out
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入第一个数:");
            string str = Console.ReadLine();
            int num = -1;
            if (IsNum(str,out num))
            {
                Console.WriteLine("可转成数字:" + num);
            }
            Console.ReadLine();
        }
        /// <summary>
        /// 判断输入的这个字符串是否是整数
        /// </summary>
        /// <param name="str">输入的字符串</param>
        /// <param name="res">如果那个字符串能够能够转换成整数,则</param>
        /// <returns></returns>
        static bool IsNum(string str,out int res)
        {
            try
            {
                //如果传进去的字符串能转成数字,则转换成数字后装进res里面
                res = int.Parse(str);
                return true;
            }
            catch(Exception e)
            {
                //如果传进去的字符串不能转成数字,则给res赋予0
                res = 0;
                return false;
            }
        }
    }
}

(2)按引用传递参数(ref)
普通方法传参对基本参数没有影响,只有在方法中的某个地方采用参数值会发生改变,引用传参,传进方法中的参数,如果在方法内发生改变,那么这个参数变量将永久性发生改变.
例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _06ref_参数
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字");
            int i = int.Parse(Console.ReadLine());
            Console.WriteLine("输入的数值是:" + i);
            Add(ref i);
            Console.WriteLine("输入的数值是:"+i);
            Console.ReadLine();
        }
        static void Add(ref int num1)
        {
            Console.WriteLine("经计算之后的结果是:"+(++num1));
        }
    }
}

(3)params:可变参数(每个方法中只能有一个)
当方法中的形参为params类型时,必须保证形参是一位数组类型,当调用方法时候遇到params类型参数,我们可以传递一个相同类型的数组,也可以直接在调用方法时填入任意数量的这种类型的参数,方法执行时会自动将填入的所有的这种类型的参数转换为数组.
例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _07params
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Max(111, 123, 125, 146, 456, 789, 452, 113,4399,2525));
            Console.ReadLine();
        }
        static int Max(params int []array)
        {
            for (int i=0;i<array.Length-1;i++)
            {
                for (int j=0;j<array.Length-1- i;j++)
                {
                    if (array[j]>array[j+1])
                    {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
            return array[array.Length - 1];
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值