using System;
class 测试
{
static void Main(string[] args)
{
int N = 50;
//由于数字太大,我只能用计算金融的decimal来作为类型
decimal[] feiBo = new decimal[N]; //定义数组
feiBo[0] = 1; //C#数组从0开始!!!!
feiBo[1] = 1; //定义了前两项
//while 循环,计算数组斐波那契数列的每一项
int x = 2;
while (x <= N - 1)
{
feiBo[x] = feiBo[x - 1] + feiBo[x - 2];
x++;
}
//foreach遍历数组,具体用法请百度,这里不再赘述。
foreach (decimal i in feiBo)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
2375C# 判断
?: 举例 下面是阶乘的递归算法,其中判断条件如果 num>0 则返回 num *Jc(num - 1),否则返回 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace jiecheng
{
class jiecheng
{
public int Jc(int num)
{
return num > 0 ? num *Jc(num - 1):1; //如果num>0则返回num *Jc(num - 1),否则返回1
}
}
class excutejiecheng
{
static void Main(string[] args)
{
jiecheng n = new jiecheng();
int result = n.Jc(Convert.ToInt16(Console.ReadLine()));
Console.WriteLine("result is {0}",result);
Console.ReadKey();
}
}
}
2376C# 循环
本篇文章没有案例,下面我给出一个循环配合数组的案例,供大家参考。
难的地方有注释。
大家也可以把案例复制到自己的VS文档里面去试验。
斐波那契数列。
2375C# 判断
?: 举例 下面是阶乘的递归算法,其中判断条件如果 num>0 则返回 num *Jc(num - 1),否则返回 1。
2374C# 运算符
C# 是用 <<(左移) 和 >>(右移) 运算符是用来执行移位运算。
左移 (<<):将第一个操作数向左移动第二个操作数指定的位数,空出的位置补 0。
左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8。
同理, 右移即相反:
右移 (>>):将第一个操作数向右移动第二个操作数所指定的位数,空出的位置补 0。
右移相当于整除. 右移一位相当于除以 2;右移两位相当于除以 4;右移三位相当于除以 8。
因为位移比乘除速度快,对效率要求高,而且满足 2 的幂次方的乘除运方,可以采用位移的方式进行。
2373C# 运算符
可空类型修饰符 ?
引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。
例如:string str=null; 是正确的,int i=null; 编译器就会报错。
为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符 ? 来表示,表现形式为 T? 。
例如:int? 表示可空的整形,DateTime? 表示可为空的时间。
T? 其实是 System.Nullable(泛型结构)的缩写形式,也就意味着当你用到 T?时编译器编译时会把T?编译成 System.Nullable 的形式。
例如:int?,编译后便是 System.Nullable 的形式。
三元(运算符)表达式 ?:
例如:x?y:z 表示如果表达式 x 为 true,则返回 y;如果 x 为 false,则返回 z,是 if{}else{} 的简单形式。
空合并运算符 ??
用于定义可空类型和引用类型的默认值。
如果此运算符的左操作数不为 null,则此运算符将返回左操作数,否则返回右操作数。
例如:a??b 当 a 为 null 时则返回 b,a 不为 null 时则返回 a 本身。
空合并运算符为右结合运算符,即操作时从右向左进行组合的。
如: a??b??c 的形式按 a??(b??c) 计算。
NULL 检查运算符 ?.
从这个例子中我们也可以看出它的基本用法:如果对象为 NULL,则不进行后面的获取成员的运算,直接返回 NULL。
需要注意的是,由于 ?. 运算符返回的可以是 NULL,当返回的成员类型是 struct 类型的时候, ?. 和 . 运算符的返回值类型是不一样的。
2372C# 运算符
&,|,^ 除了用于位运算,还可以用于逻辑运算,分别对应与,或,异或。
^ 运算符针对整型类型和 bool 预定义了二元 ^ 运算符。 对于整型类型,^ 会计算其操作数的按位异或。 对于 bool 操作数,^ 计算其操作数的逻辑异或;即,当且仅当其一个操作数为 true 时,结果才为 true。
| 运算符针对整型类型和 bool 预定义了二元 | 运算符。 对于整型类型,| 会计算其操作数的按位 OR。 对于 bool 操作数,| 会计算其操作数的逻辑 OR;即,当且仅当其两个操作数皆为 false 时,结果才为 false。
& 运算符为整型类型和 bool 预定义了二元 & 运算符。 对于整型类型,& 计算其操作数的逻辑按位 AND。 对于 bool 操作数,& 计算其操作数的逻辑 AND;即,当且仅当其两个操作数皆为 true 时,结果才为 true。
其中&,|的运算结果与&&,||完全相同,但&&和||的性能更好。因为&&和||都是检查第一个操作数的值,如果已经能判断结果,就根本不处理第二个操作数。
比如:
检查第一个操作数a时已经得出c为true,就不用再处理第二个操作数b了。