VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • c#教程语句

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语句返回一个值
       表达式必须匹配返回值的类型
       最好一个函数只有一个retun语句
       使用return; 来结束一个 void 函数
string DaySuffix(int days)
{
    string result;
    ...
    return result;
}
一个函数通过return语句能够返回一个单值。return语句中的表达式的类型必须和函数声明的返回值的类型相同或可以隐式转换为返回值的类型。
如果你要从一个函数中返回多个值,那你可以使用以下方法:
         你可以把返回值放在一个结构中
         你可以把返回值放在一个数组或集合类的对象中
         你可以使用在函数中使用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;
//正确
Boolean love = true;
Boolean teeth = false;
//错误,因为没有包含System命名空间,请注意大小写
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;
&&的结果是只有当操作符两边的操作数都是true时才是true。如果&&左边的操作数是false的话,那么不管右边的操作数是false还是true,整个&&表达式的值为false。
||的结果是当操作符两边的操作数只要一个是true的时候就是true。如果&&左边的操作数是true的话,那么不管右边的操作数是false还是true,整个&&表达式的值为true。
!表示取反的意思。
有一种称为“短路”的技术非常有用。例如,左边的表达式可以判断一个值是否为0,然后右边的表达式可以把这个值作为除数。例如:
              if ((x != 0) && (y / x > tolerance)) ...
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型表达式。例如下面的诗句是错误的:
              if (currentValue = 0) ...
c#要求所有的变量必须预先明确赋值后才能使用,因此,下列的程序是错误的:
              int m;
              if (inRange)
                  m = 42;
              int copy = m; //错误,因为m可能不会被赋初值。
在C#中,if语句中不能包含变量声明语句,例如:
              if (inRange)
                            int useless;// 错误
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;
}
你只能对整型、字符串或可以隐式转换为整型或字符串的用户自定义类型使用switch语句。case标志必须在编译时是常数。
C#中没有Visual Basic中的Is关键字在case中进行比较,例如:
              switch (expression())
              {
                     case Is < 42    : //错误
                     case method()   : //错误
              }
C#中没有范围比较符。
switch (expression())
{
              case 16 To 21   : //错误
              case 16..21     : //错误

注意:每个case段必须包括break语句,default语句也不例外。
8.while/do
int digit = 0;
while (digit != 10)
{
    Console.Write("{0} ", digit);
    digit++;
}//没有分号
int digit = 0;
do
{
    Console.Write("{0} ", digit);
    digit++;
}
while (digit != 10);//有分号
9.for语句
       for 语句
       for块中声明的变量是局部的,只在for块中有效
       可以省略for语句中的任何一部分
for (int digit = 0; digit != 10; digit++)
{
    Console.Write("{0} ", digit);
}
//屏幕上显示0 1 2 3 4 5 6 7 8 9
在for块中声明的变量只在for块中有效。例如:
       for (int digit = 0; digit != 10; digit++)
       { ... }
       Console.WriteLine(digit); //错误,digit只在for块中有效
可以通过逗号在for语句中声明多个变量和多个变化语句:
       for (int i = 0, j = 0; i + j < 20; i++, j++)
       { ... }
10.foreach
       来源于shell, VB, PERL
       用于任一集合,包括数组
using System;
sealed class Foreach
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.Write("{0} ", arg);
        }
        Console.WriteLine();
    }
}
把以上程序在windows命令行进行编译:C:\Sharp>csc Foreach.cs
然后键入:C:\Sharp>Foreach 0 1 2 3 4 5 6 7 8 9
屏幕上显示0 1 2 3 4 5 6 7 8 9
foreach用来遍历集合或数组中的元素。
11.foreach的几点注意
        foreach ( 类型 标识符 in 表达式 )
       类型和标识符声明一个循环变量
       循环变量隐含为readonly, 不能有ref out 修饰
        表达式是可列举的集合
sealed class ForeachTranslation
{
    static void Example(MyWibbleCollection wibbles)
    {
        MyEnumerator pos = wibbles.GetEnumerator();
        while (pos.MoveNext())
        {
            Wibble current = pos.Current;
            Console.Write("{0} ", current);
        }
    }
}
集合类型的定义规则:(假设集合的名字是C)
C必须定义一公有函数GetEnumerator(),该函数的返回值是一结构类型或是一类类型或是一接口类型(假设返回值的名字是E);
返回值E的定义规则:
        E包含一公有函数MoveNext(),用来使E指向集合中的下一个元素,返回值的类型是bool。
        E包含一公有属性Current,用来读取当前值。这个属性的类型是集合元素的类型。
12.break/continue
break用来结束一个循环,continue用来重新启动一个循环。
13.找错
{
    for (int i = 0; i != 12; i++)                       1
    {
        ...
    }
    int i = 0;
}
 
for (int i = 0, i == 12, i++)                           2
{
    ...
}
 
foreach (int i in array)                                 3
{
    i++;
}
第1个程序的错误:不能在一个父块和一个子块中声明两个相同名字的变量
第2个程序的错误:不是使用逗号分割for语句的三个部分,而应使用分号。
for语句的判断条件应为逻辑语句。
第3个程序的错误:foreach的循环变量是只读的

相关教程