.NETc#中跳出循环(returnbreakcontinue)和⼏个关键字
(outref。。。
1.c#中跳出循环(return/break/continue)
return:跳出循环直到代码块结束;
break:跳出循环进⾏循环之后的代码;
continue:跳出当前次循环,进⾏新的下⼀次循环.
writeline输出数值变量
2.普通的⽅法函数只能返回⼀种类型的值(⼀个数值或⼀组数值)
(1)out:例如:parse:⾄少返回两种类型:⼀种是判断这个字符串是否能够转换成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];
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。