.
Console.WriteLine()//是输入
prase//是转换格式
.
0
变量 hasNbr 起到了关键作用:记录筛选结果。它的初始值为 false ,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为 true ,表示有
.
.
switch 中的(变量)只能是3种类型:整型(如 int )、字符型( char )、字符串类型( string )。
①每一个 else 与前面离它最近的 if 配对。按照这个原则,上面示例代码的两个 else 都与第二个 if 配对,这显然是不可能的,于是又有了第二个原则。
②多个 else 都与同一个 if 相近时,最内层的 else 优先配对。这样,第一个 else 处于内层,就与第二个 if 优先配对,第二个 else 只能与第一个 if 配对。上面的示例代码会输出“C”。
注意:表示两个值相等的“等于”是由2个“=”组成的。
比较运算的结果,都是布尔类型( bool ),bool类型我们是第一次提到,它表示逻辑上的真(成立)与假(不成立)。真与假用关键字 true 和 false 表示。
age++;
与age=age+1;
作用相同,都是变量的值+1。
另外,age++;
与age--;
也可以写作++age;
或--age;
Console.WriteLine(age);//先打印
=+1;
Console.WriteLine(++age);作用等同于下面两句:
=+1;
C#中的取余运算符就是%。上一节学习的除号,作用是求2个数字相除的商,而取余运算符%的作用是求两个数字相除的余数。比如:
Console.WriteLine(195);Console.WriteLine(195);
double精度高
int精度低
字符类型 char ,存储用 '' (单引号)括起来的一个字符,例如:
char sex='男';//存储性别
字符串类型 string ,存储用“”(双引号)括起来的一串字符,例如:
address="北京市宣武区牛街北口";//存储地址
整数类型 int ,存储整数,例如:
age=23;
双精度浮点型 double ,存储小数,例如:
salary=7991.63;
断电快捷键:F9
调试快捷键:F5
单步执行快捷键:F10
接收控制台输入代码:
string name;
Console.Write("请输入你的姓名:");
name=Console.ReadLine();
Console.WriteLine("nihao ,{0}",name);
声明数组的四种方法:
char[]a=new char[3];
char[] b=new char[]{'a','b','c'};
char[] c={'a','b','c'};
char[] d=new char[3]{'a','b','c'};
嵌套循环生成叉号代码:
for (int x = 1; x <= 7; x++)//循环7行
{
for (int y = 1; y <= 7; y++)//循环7列
{
if (x == y || x + y == 8)//对角线打印O
{
Console.Write("O");
}
else
{
Console.Write(".");//其他位置打印.
}
}
Console.WriteLine();//换行
嵌套循环形成三角形代码:
for (int y = 1; y <= 7; y++)
{
for (int x = 1; x <= y; x++)
{
Console.Write(x);
}
Console.WriteLine();//换行
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace projGetMaxScore
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, double> dictionary = new Dictionary<string, double>()
{
{"吴松", 89},
{"钱东宇", 90},
{"伏晨", 98},
{"陈璐", 70 },
{"龙玉民", 46 },
{"单开江", 81 },
{"田武山", 77},
{"王三民", 68 }
};
var result = dictionary.OrderByDescending(t => t.Value).Select(q => q.Key);
List<string> keyList = result.ToList<string>();
Console.WriteLine(keyList[0]);
double max = dictionary.Values.Max();
Console.WriteLine("分数最高的是{0},分数是{1}", keyList[0], max);
}
}
}
Dictionary<string, double> dictionary = new Dictionary<string, double>()
{
{"景珍", 90 },
{"林慧洋", 65},
{"成蓉", 88},
{"洪南昌", 70 },
{"龙玉民", 46 },
{"单开江", 81 },
{"田武山", 100},
{"王三民", 68 }
};
double sum = dictionary.Values.Sum() / dictionary.Count();
Console.WriteLine("平均分是:{0}", sum, "高于平均分的有:");
var result = dictionary.Where(pair => pair.Value > sum).ToList();
foreach (var item in result)
{
Console.Write($"{item.Key} ");
};
string temp;
temp=today;
today=tomorrow;
tomorrow=temp;
代码中的Console.WriteLine()与之前的Console.Write()不同,后者不换行,而前者会在打印之后换行。
关键字 static (静态的)、 void (无返回值)、 string (字符串类型)。
有4种方法声明并初始化一个数组
查找算法的另一种应用,是检查一组数据中是否包含符合条件的元素,也就是要给出“有”或“没有”的结论。
要解决这种问题,首先要声明一个“开关变量”,用来记录查找的状态;通常,我们把开关变量初始化为 false ,表示没有找到,循环中如果发现了符合条件的元素,则给变量赋值为 true ,并结束查找。循环结束后,就可以判断开关变量: true 表示“有”, false 表示“没有”。
查找算法,主要有 2 个步骤:
1、使用循环访问数组中的每一个元素
2、在循环体中设置筛选条件,打印符合条件的元素
如上例,循环条件是x<=10,筛选条件是x%2==0。初学者常见的错误是把 2 个条件都写在循环条件里,比如把循环条件写成 x<=10 && x%2== 0 ,请注意甄别:循环条件必须能够遍历每一个数据,如果你写的循环条件会漏掉某些数据,或者循环没有能够正常运行,请检查是不是把筛选条件也写在循环条件里了。
请注意:数组的索引从 0 开始递增。那么,数组 y 中 3 个元素的名字就变成了 y[0]、y[1]、y[2] 。最后再注意一点:数组经过初始化以后,数组元素有默认的初始值, double 类型为 0.0 , int 类型为 0 , char 类型为 'a' , bool 类型为 false , string 类型为 null 。
foreach 循环则可以不依赖索引而读取每一个数组元素。