-
今天到这查看全部
-
break 关键字还可以用在循环中,作用是“结束循环”。当执行到 break ,循环结束(尽管此时循环条件仍然为 true )查看全部
-
循环中可以应用 continue 关键字中止一次循环,直接进入下一次。请看下面的例子:查看全部
-
设置断电和取消断电:F9 调试:F5 单步执行:F10查看全部
-
添加断点:在程序的最左边点一个灰色的点,也可直接按F9查看全部
-
当出现多个 if 和 else ,又没有{}来界定范围时,请参考下面2条原则: ①每一个 else 与前面离它最近的 if 配对。按照这个原则,上面示例代码的两个 else 都与第二个 if 配对,这显然是不可能的,于是又有了第二个原则。 ②多个 else 都与同一个 if 相近时,最内层的 else 优先配对。这样,第一个 else 处于内层,就与第二个 if 优先配对,第二个 else 只能与第一个 if 配对。查看全部
-
输出语句:Console.Write();//不换行 Console.WriteLine();//幻行 读入语句:Console.ReadLine();查看全部
-
age++;与age=age+1;作用相同,都是变量的值+1查看全部
-
比较运算的结果是bool类型,结果由ture 和 false 来表达查看全部
-
二维数组,就是以数组作为元素的数组。挺拗口的,看看它跟一维数组的对比: 左边的 a 是一维数组,数组中包含 4 个 int 型变量:a[0]、a[1]、a[2]、a[3] 。 右边的 b 是二维数组,数组中包含 2 个 int 型一维数组:b[0]、b[1] 。而 b[0] 和 b[1] 中又分别包含 3 个 int 型变量:b[0,0]、b[0,1]、b[0,2]、b[1,0]、b[1,1]、b[1,2] 。 总结一下,二维数组这样声明: int[,] arr = new int[2,3]; //包含2个一维数组,每个一维数组包含3个变量,总共2*3=6个数组元素 二维数组元素这样赋值和打印: arr[1,0] = 28; //二维数组元素有2个索引,都是从0开始,以arr数组为例,元素索引从[0,0]到[1,2] Console.Write( arr[1,0] ); 我们可以用二维数组管理相关的数据,比如有 4 名同学参加语文和数学两门考试,我们用二维数组存储他们的成绩,每位同学的 2 门课分数,存储在一个一维数组中:查看全部
-
C#的foreach关键字 for 循环使我们可以通过索引访问数组元素;而 foreach 循环则可以不依赖索引而读取每一个数组元素。下面的示例代码声明了一个整型数组,然后通过两种方法打印数组元素: 运行结果是相同的: 使用 foreach 的语法: 需要解释一下 ④ ,如上面的示例代码,迭代变量 x 只能用于读取数组 num 中的值,但是不能给数组元素赋值,如果尝试给 x 赋值,则会有下面的错误提示: 了解了 foreach 循环的语法,你可能会有疑问:好像 foreach 循环能做的 for 都能做, foreach 存在的意义是什么呢?其实,C#中还存在一些类似于数组的数据组织方式,它们中有一些是没有元素索引的,对于这些元素,只能通过 foreach 遍历。关于那些更高级的对象,我们留待后面的课程介绍。查看全部
-
上一节我们学习查找,是把符合条件的数据打印出来。有的时候我们不想打印,只想知道有没有符合条件的数据,该怎么做呢?下面的例子查找一组人名,如果人名中包含“诺贝尔”,就打印“有诺贝尔”,如果没有,就打印“木有木有”: 通过源代码可以看到,数组的第二个元素就是要查找的“诺贝尔”,运行结果是这样的: 这段代码有一个逻辑错误,事实上,数组中只要有一个“诺贝尔”就可以认定“有诺贝尔”,但必须所有的名字都不是“诺贝尔”,才能认定“木有木有”。 或者这么说:一组数据中只要有一个符合条件,就可以认为“有符合条件的数据”;但只有一组数据中每一个都不符合条件,才能认为“没有符合条件的数据”——一个相等即为"有",全都不等才是"无"。 那么,到底应当怎样判断有无呢?请看下面的代码: 变量 hasNbr 起到了关键作用:记录筛选结果。它的初始值为 false ,表示没有,如果循环中找到了相等的数据,再修改 hasNbr 的值为 true ,表示有。循环结束后,只要看看变量 hasNbr 是 true 还是 false ,就知道循环中是否修改过。运行结果如下(有诺贝尔): 删去数组中的“诺贝尔”,再次运行程序:查看全部
-
C#运算符的优先级请参考下面的顺序: ①括号。学数学的时候我们就知道,要先计算括号里面的内容。C#语言也是一样,如果有多层括号,要从里向外计算。括号优先级最高。 ②一元运算符。有些运算符两边有2个操作数,比如2+3、6%5等等,这些叫做二元运算符。只有一个操作数的叫做一元运算符,它们的优先级高于二元运算符。一元运算符包括:++(自加) 、 --(自减) 、 !(逻辑非)。 ③*(乘)、/(除)、%(取余)。 ④+(加)、-(减)。 ⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。 ⑥==(等于)、!=(不等于)。 ⑦&&(逻辑与)。 ⑧||(逻辑或)。 ⑨赋值运算符。包括:=、+=、-=、*=、/=、%=。 另外,还需要注意一点:优先级相同的运算符从左向右计算(赋值运算符相反)。 请看下面这段代码: bool b = 20 - (15 - 8) * 2 > 10 && (2 % 2 * 2 + 2) > 2; Console.WriteLine(b); 分析:首先计算优先级最高的括号,(15-8)得到7,(2%2*2+2)则需要先计算%和*,后算+,结果是2,表达式就变成了: bool b=20-7*2>10&&2>2; 接下来优先级最高的是7*2,然后是减法,变成: bool b=6>10&&2>2; 继续计算两个大于号,得到: bool b=false&&false; 最后的结果当然是false:查看全部
-
编程中有这样一种情形:我们需要存储多个同类型数据。比如,保存 1600 个学生的年龄。是否需要声明 1600 个 int 类型的变量?过了一年,学生们长了 1 岁,是否需要给每个变量重新赋值?这件事情,想想就怕怕。好在C#中有一种数组,专门存储一组相同类型的数据。数组的声明和初始化语法如下: 数据类型[ ] 数组名 = new 数据类型[长度]; 注意:数组名像变量名一样要遵循标识符的命名规则;长度必须是整数 下面我们来比较变量和数组的声明与初始化,右边是在内存中为变量和数组分配空间的示意: 对比变量 x 和数组 y 就会发现,数组 y 中其实包含了 3 个 double 类型的变量,为什么是 3 个?因为初始化数组时在 [ ] 中声明的长度为 3 。既然都在数组 y 中,所以 3 个变量(应该叫数组元素)的名字都叫 y ,为了区分它们,按照顺序给它们加上索引 [0]、[1]、[2] 。请注意:数组的索引从 0 开始递增。那么,数组 y 中 3 个元素的名字就变成了 y[0]、y[1]、y[2] 。最后再注意一点:数组经过初始化以后,数组元素有默认的初始值, double 类型为 0.0 , int 类型为 0 , char 类型为 'a' , bool 类型为 false , string 类型为 null 。 数组元素的赋值与普通变量相同。下面的示例中,我们声明了一个长度为 3 的 string 类型数组,逐个赋值,然后打印: 上例中,需要注意的是元素的索引,数组元素索引从 0 开始递增,所以长度为 3 的数组,其元素索引为 [0]、[1]、[2] 。 如何知道一个数组的长度呢? 数组.Length 属性会返回数组的长度(即数组元素的个数)。请看下面的例子:查看全部
-
前面学习 switch 结构时,我们曾经遇到过 break 关键字, break 在 switch 结构的作用是“跳出 switch 结构”。 break 关键字还可以用在循环中,作用是“结束循环”查看全部
举报
0/150
提交
取消