一周学C#之第4天——语句
一周学C#_第4天
语句
1 语句
声明语句
表达式语句
块
是语句的一个无名集合
包含在{}之间
声明语句;//必须要有分号
表达式语句;//必须要有分号
{
语句;
语句;
...
}//不需要有分号
C#和C++、Java一样,都可以把声明语句当做普通语句。
换言之,你可以在任何地方使用声明语句,而不必在程序的开头。
一个块定义了一个范围,任何一个在块中声明的变量在块结束时,它就会消失了
2 throw语句
throw语句抛出错误
检查先前定义的条件时非常有用
表达式的类型必须是System.Exception或是它的派生类
string DaySuffix(int days)
{
if(days<0 || days>31)
{
throw new ArgumentOutOfRangeException(“days”);
}
}
3 return语句
return语句返回一个值
表达式必须匹配返回值的类型
最好一个函数只有一个return语句
使用ruturn;来结束一个void函数
string DaySuffix(int days)
{
string result;
...
return result;
}
一个函数通过return语句能够返回一个单值。
return语句中的表达式类型必须和函数声明的返回值的类型相同或可以隐式转换为返回值的类型。
如果你要从一个函数中返回多个值,那你可以使用以下方法:
l 你可以把返回值放在一个结构中;
l 你可以把返回值放在一个数组或集合类的对象中;
l 你可以使用在函数中使用out型参数
4 bool
bool是一个关键字
它是System.Boolean的别名
它的取值只能是true和false
bool love=true;
bool teeth=false;
//正确
System.Boolean love=true;
System.Boolean teeth=false;
//正确
using System;
...
Boolean love=true;
Boolean teeth=false;
//正确
5 布尔型操作符
1 赋值 =
2 等于 == !=
3 逻辑 ! && || ^ & |
int tens=(9*6)/13;
int units=(9*6)%13;
bool isFour=tens==4;
bool isTwo=units==2;
bool hhg;
hhg=isFour & isTwo;
hhg=!(isFour & isTwo);
hhg=!isFour | !isTwo;
hhg=!hhg;
6 if语句
string DaySuffix(int days)
{
string result;
if (days / 10 == 1)
result = "th";
else if (days % 10 == 1)
result = "st";
else if (days % 10 == 2)
result = "nd";
else if (days % 10 == 3)
result = "rd";
else
result = "th";
return result;
}
if语句的条件表达式必须是纯粹的bool型表达式。
C#要求所有的变量必须预先明确赋值后才能使用。
C#中,if语句中不能包含变量声明语句。
7 switch语句
用于整数类类型
case后的标志必须是编译时为常数
没有表示范围的缩略形式
string DaySuffix(int days)
{
string result = "th";
if(days/10!=1)
switch (days % 10)
{
case 1:
result = "st";
break;
case 2:
result="nd";
break;
case 3:
result="rd";
break;
default:
result = "th"; break;
}
return result;
}
case语句,可以对【整型】【字符串】或者【可以隐式转换为整数或字符串的用户自定义类型】使用switch语句。
C#没有VB中的is关键字,可用于case中。
C#中也没有范围比较符。
注意:每一个case段必须包含break语句,default语句也不例外。
8 while/do
int digit = 0;
while (digit != 10)
{
label2.Text += (digit + "/");
digit++;
}
int digit=0;
do
{
label3.Text += (digit + "/");
digit++;
} while (digit != 10);//此处有分号
9 for语句
for块中声明的变量是局部的,只在for块中有效
可以省略for语句中的任何一部分
for (int digit = 0; digit != 10; digit++)
{
label4.Text+=(digit+"/");
}
在for块中声明的变量只在for块中有效。
在for块中,多个声明的变量或者多个变化语句,可以用【逗号】分割
10 foreach
来源于VB、shell、PERL
用于任一集合,包括集合
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
foreach (string arg in args)
{
Console.Write("{0}", arg);
}
Console.WriteLine();
Console.ReadLine();
}
}
}
foreach用来遍历集合或数组中的元素。
11 foreach的几点注意事项
foreach(类型 标识符 in 表达式)
类型和标识符声明一个循环变量
循环变量隐含为readonly,不能有ref或out修饰
表达式是可列举的集合
要遍历的集合类型的定义规则:(假设集合的名字是C)
C必须定义一个公有函数GetEnumerator(),该函数的返回值是结构类型、类类型、接口类型之一。
返回值E的定义规则:
E包含一个公有函数MoveNext(),用来使E指向集合中的下一个元素;返回值的类型是bool。
E包含一个公有属性Current,用来读取当前值,这个属性的类型是集合元素的类型。
12 break/continue
break用来结束一个循环;
continue用来重新启动一个循环