循环结构

赋值语句

赋值语句进行赋值操作,就是给变量或常量赋值。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            double x;    //定义一个double型变量x
            int y = 3;   //定义一个int型变量y,让y的值为3,可以读为把3赋给y
            int z = 8;   //定义一个int型变量z,让z的值为8
            x = y + z + Math.Sin(3.65);  //将表达式的结果赋给x,Math.Sin是使用Math类库中的Sin方法求正弦值

        }
       
      
    
    }
   
    
}

赋值运算符(=)的左侧必须是能够接受和存储值得编程元素,即左侧必须是一个不为只读的变量或属性,或者是一个数组元素。赋值运算符右侧的表达式是一个值。

注释语句

注释就是解释,是对代码添加的描述性文字,用来说明程序的功能,语句块的作用等,以方便代码的阅读和维护。

C#的注释方法有3种,分别是单行注释,多行注释,和Xml注释。

单行注释以//开始,多行注释使用/*  */跨行注释,XML注释使用特殊的注释语法,以///开头。在///之后,可以使用预先定义的标签注释代码,也可以插入自己定义的标签

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {/*
      * 程序名:
      * 功能:输出字符串Hello World
      * 时间2016-4-4
      */

        static void Main(string[] args)
        {
        }
       
      
    
    }
    public class HelloWorld
    {
        ///<summary>
        ///控制台应用程序入口点
        ///<param name="args">命令行参数</param>
        ///<returns>运行成功返回0</returns>
        ///</summary>

        public static int Main(string[] args)//程序入口点
        {
            Console.WriteLine("Hello World !");//输出Hello World
            string name = Console.ReadLine();//暂停程序的运行,接受键盘输入的字符
            return (0);   
        }
    }

   
    
}

选择正确的道路

条件循环

条件语句就是对条件进行判断,根据判断结果选择执行不同的分支

包括if语句,if   else语句和switch语句

单分支结构

if(条件表达式)

{

语句块

}

如果满足条件则执行语句块,如果不满足则跳过语句块

双分支语句 if   else语句

if(条件表达式)

{

  语句块1

}

else

{

  语句块2

}

如果满足条件则执行语句块1否则执行语句块2

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入一个字母:");
            char c = (char)Console.Read();   //接受从键盘上输入的一个字符给c
            if (Char.IsLower(c))//判断输入的字母是否是小写
            {
                Console.WriteLine("您输出的是小写字母");

            }
            else
            {
                Console.WriteLine("您输出的是大写字母");
            }
        }    
    }
    
}

多分支结构

if(表达式1)

{

   语句块1

}

else if(表达式2)

{

  语句块2

}

........

else if(表达式n)

{

   语句块n

}

else

{

  语句块n+1

}

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入一个字母:");
            char c = (char)Console.Read();   //接受从键盘上输入的一个字符给c
            if (Char.IsUpper(c))//判断输入的字母是否是小写
            {
                Console.WriteLine("您输出的是大写字母");

            }
            else if(Char.IsLower(c))
            {
                Console.WriteLine("您输出的是小写字母");
            }
            else if (char.IsDigit(c))
            {
                Console.WriteLine("您输入的是数字");
            }
            else
            {
                Console.WriteLine("您输入的字符既不是数字也不是字母");
            }
            Console.ReadKey();
        }    
    }
    
}

Switch结构

switch语句能够根据表达式的值来选择执行的代码,if语句只能测试单个条件,如果需要测试多个条件,则需要书写很长的代码,而switch语句能够有效的避免较长的代码,并能测试多个条件,switch语句的语法为:

switch(表达式)

{

   case 常量表达式1: 语句1   break;

  case 常量表达式2: 语句2   break;

   case 常量表达式3: 语句3  break;

   ......

   case 常量表达式n  语句n   break;

  default        语句n+1  break;

}

语句执行的过程是计算switch语句中表达式的值,再依次与1-n个常量比较,当表达式的值与某个case后面的常量表达式的值相等时则执行case后面的语句,然后执行break语句跳出switch结构,如果几个常量表达式的值都不等于表达式的值则执行default处的语句。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            float op1, op2;
            char sign;
            Console.WriteLine("请输入第一个数据,按回车键结束:");
            op1 = float.Parse(Console.ReadLine());
            Console.WriteLine("请输入第二个数据,按回车键结束:");
            op2 = float.Parse(Console.ReadLine());
            Console.WriteLine("请输入运算符号(+,-,*,/),以回车键结束:");
            sign = (char)(Console.Read());
            switch (sign)
            {
                case '+':
                    op1 += op2;
                    break;
                case '-':
                    op1 -= op2;
                    break;
                case '*':
                    op1 *= op2;
                    break;
                case '/':
                    op1 /= op2;
                    break;
                case '%':
                    op1 %= op2;
                    break;
                default:
                    Console.WriteLine("你输入的不是算数运算符!");
                    break;
            }
            Console.WriteLine("运行结果是:{0}",op1);
            Console.ReadKey();
        }    
    }
    
}

循环结构

While循环

while循环的语法为:

while(表达式)

{

   //循环体语句

while循环执行的过程是:计算表达式的值,当表达式的值为“真”时,执行循环语句,然后再判断表达式的值,当表达式的值仍为“真”时,则再次执行循环语句,重复上述执行过程,当表达式的值为“假”时则退出循环。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            int i, sum;
            i = 1;
            sum = 0;
            while (i < 101)
            {
                sum = sum + i;
                i++;
            }
            Console.WriteLine("1+2+3+4+5+6+7+..........+100={0}",sum);
            Console.ReadKey();
        }    
    }
    
}

for循环

for循环的语法为:

for(表达式1;表达式2;表达式3)

{

     //循环体

}

for语句的执行过程

1.首先计算表达式1,为循环控制变量赋初值。

2.计算表达式2,检查循环控制条件,若表达式2的值为“真”,则执行一次循环体;若为“假”,控制转出循环结构。

3.执行完一次循环体后,计算表达式3,对控制变量进行增量或减量操作,再重复“第二步骤”操作。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            int  sum;
            sum = 0;
            Console.WriteLine("计算 1+2+3.......+100的和:");
            for (int i = 1; i <= 100;i++ )
            {
                sum = sum + i;
            }
            Console.WriteLine("1+2+3+4+5+6+7+..........+100={0}",sum);
            Console.ReadKey();
        }    
    }
    
}

改用do......while

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            int i, sum;
            i = 1;
            sum = 0;
            do
            {
                sum = sum + i;
                i++;
            }
            while (i < 101);
            Console.WriteLine("1+2+3+4+5+6+7+..........+100={0}",sum);
            Console.ReadKey();
        }    
    }
    
}

foreach

foreach循环用于便利整个数组或集合,可以获取集合中的所有对象。语法如下:

foreach(数据类型 局部变量 in 集合或者数组)

{

    //代码块

}

foreach语句的执行顺序是:判断集合中是否存在元素,若存在,则用集合中的第一个元素初始化局部变量,执行控制语句。然后继续判断集合中是否还有剩余元素,若存在,则将剩余的第一个元素初始化局部变量,继续循环,若不存在,则结束循环。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
            foreach (string s in str)
            {
                Console.WriteLine(s);
            }
            Console.ReadKey();
        }    
    }
    
}

循环嵌套

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("100之中的素数:");
            for (int i = 2; i < 100; i++)
            {
                bool isPrime = true;
                for (int j = 2; j < i - 1; j++)
                {
                    if (i % j==0)
                    {
                        isPrime = false;
                        break;
 
                    }
                }
                if (isPrime)
                {
                    Console.Write("{0},   ", i);
                }
            }
                Console.ReadKey();
        }    
    }
    
}

continue语句的功能不是退出循环结构,而是结束本次循环,即忽略continue后面的语句。

字符串

String对象的内容是不可改变的,所以也称静态串,不可改变指的是只要创建一个String类型的对象,就不能再改变对象的值,任何赋值,修改操作都将被分配一个新值。

可以使用String类的Compare,CompareOrdinal,CompareTo,Equals,EndsWith和StartsWith等方法进行字符串的比较。

使用IndexOf,IndexOfAny,LastIndexOf,LastIndexOfAny等方法获取字符串中的子字符串。

使用Copy和CopyTo方法可以将字符串或子字符串复制到另一个字符串或Char类型的数组。

使用Substring和Split方法可以通过原始字符串的组成部分创建一个或多个新字符串。

使用Concat和Join方法可以通过一个或多个子字符串创建新字符串。

使用Insert,Replace,Remove,PadRight,Trim,TrimEnd和TrimStart等方法可以修改字符串的全部或部分。

使用ToLower,ToLowerInvariant,ToUpper和ToUpperInvariant等方法可以更改字符串中Unicode字符串的大小写。

使用Length属性可以获取字符串中Char对象的数量,使用Chars属性可以发访问字符串中实际的Char对象。

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "I Love C# 3.0"; //声明一个名称为str1的字符串并赋值
            string str2 = "I Love c# 3.0"; //声明一个名称为str2的字符串并赋值
            string str3 = "I Love Java";   //声明一个名称为str3的字符串并赋值
            Console.WriteLine("字符串的比较:");     //输出提示信息
            Console.WriteLine("str1={0},str2={1},str3={2}", str1, str2, str3);//输出3个字符串的值便于观察运行结果
            Console.WriteLine("str1是否等于str2:--》{0}", string.Compare(str1, str2));//比较str1和str2是否相等
            Console.WriteLine("str1在忽略大小写的情况下是否等于str2--》{0}",string.Compare(str1,str2,true));//比较str1和str2在忽略大小写的时候是否相等
            Console.WriteLine("str1是否等于str3--》{0}",str1.CompareTo(str3));//比较str1和str3是否相等
            Console.WriteLine("str1的第0个字符是否与str2的第0个字符相等--》{0}",string.Compare(str1,0,str2,0,2));
            Console.WriteLine("str1的第7个字符是否与str2的第7个字符相等--》{0}", String.Compare(str1, 7, str2, 7, 2));
            Console.WriteLine("str1第7个字符是否与str2的第七个字符在忽略大小的情况下相等--》{0}", string.Compare(str1, 7, str2, 7, 2, true));
            Console.WriteLine("str1是否以字符I开头--》{0}", str1.StartsWith("I"));
            Console.WriteLine("str1是否以字符i开头--》{0}", str1.StartsWith("i"));
            Console.WriteLine("str2是否以c#结尾--》{0}", str2.EndsWith("c#"));
            Console.WriteLine("字符串L为字符串{0}第{1}字符:",str3,str3.IndexOf("L"));
            Console.WriteLine("字符L在字符串{0}中最后出现的位置为{1}",str3,str3.LastIndexOf("L"));
            Console.WriteLine("将使用+将str1和str2相连后内容为-->{0}",str1+""+str2);
            Console.WriteLine("使用Concat方法将str1和str2相连后内容为--》{0}",string.Concat(str1,"&&",str2));
            //Split方法用以切割字符串,返回一个包含所有分割子字符串的数组对象
            string str = "How are you: what's you name:I Love .NET";
            string result = "";
            char split = ':';//定义分割的符号
            Console.WriteLine("对{0}按冒号进行分割:",str);
            foreach (string s in str.Split(split))
            {
                result += s + "
";
            }

            Console.WriteLine(result);

           
                Console.ReadKey();
        }    
    }
    
}

String类还提供了很强大的Format()方法格式化字符串语法结构如下:

String str=string.Format("格式化字符串",参数列表)

常见的格式说明符

字符 说明 示例 输出
C 货币 string.Format("{0:C3}",2)

$2.000

D 十进制 string.Format("{0:D3}",2) 002
E 科学计数法 string.Format("{0:E}",1.20E+001) 1.200000E+001
G 常规 string.Format("{0:G}",2) 2
N 用分号隔开的数字 string.Format("{0:N}",250000) 250,000.00
X 十六进制 string.Format("{0:X000}",12) C
0 格式说明符 string.Format("{0:000.000}",12.2) 012.200

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "";  //定义s用于存放格式字符串的输出结果
            Console.Clear();
            Console.WriteLine("数值格式字符使用例子:");
            s = string.Format(
                "(C)Currency:........{0:C}  
"  +
                "(D)Decimat:..........{0:D}  
" +
                "(E)Scientific:.........{1:E}  
"+
                "(F)Fixed point:.......{1:F}   
"+
                "(G) General............{0:G}   
"+
                "(default):..........{0}(default='G')",-123,-123.45f
                );
            Console.WriteLine(s);
           
                Console.ReadKey();
        }    
    }
    
}

动态串StringBuilder

StringBuilder类并没有String类的功能强大它只提供了基本的替换,删除,添加字符串中的文本,它主要有两个参数Length和Capacity分别表示字符串的实际长度和字符串占据的内存空间长度例如:

StringBuilder MyStringBuilder=new StringBUilder("Hello World",25);

如果将Length 属性设置为大于Capacity 属性的值,则自动将Capacity属性更改为Length 属性相等的值如果将Length属性设置为小于当前StringBuilder对象内的字符串长度则会缩短该字符串。StringBulider 方法如下:

名称 作用
Append() 给当前字符串添加一个字符串
AppendFormat() 添加特定格式的的字符串
Insert() 在当前字符串中插入一子字符串
Remove() 在当前字符串中删除字节
Replace() 在当前字符串中,用另一个字符串替换某个字符,或者用当前字符串中的另一个子字符串替换某个字符串
ToString 把当前字符串转换为System.String对象

例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 */
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder sb1 = new StringBuilder();
            Console.WriteLine("sb1的初始容量为--》{0}",sb1.Capacity);
            Console.WriteLine("sb1的初始长度为-->{0}", sb1.Length);
            sb1.Append("Hello world");//向sb1中添加字符串
            Console.WriteLine("向sb1中添加后sb1的容量:{0}", sb1.Capacity);
            Console.WriteLine("向sb1中添加后sb1的长度:{0}", sb1.Length);
            sb1.Append("hello C# I am very like Learning English.");
            Console.WriteLine("再次向sb1中添加后sb1的容量:{0}",sb1.Capacity);
            Console.WriteLine("再次向sb1中添加后sb1的长度:{0}",sb1.Length);
            StringBuilder sb2 = new StringBuilder("I Love Java",30);
            Console.WriteLine("sb2的原始内容是:");
            Console.WriteLine(sb2);
            Console.WriteLine("使用replace方法将sb2中的Java换成C#后内容为:");
            Console.WriteLine(sb2.Replace("Java","C#"));
            Console.WriteLine("使用insert方法在sb2的第七个字符中添加Java and后sb2的内容为:");
            Console.WriteLine(sb2.Insert(7, "Java and"));
            Console.WriteLine("使用remove方法将sb2中第七个字符以后的删除后sb2的内容为:");
            Console.WriteLine(sb2.Remove(0, 7));
                Console.ReadKey();
        }    
    }
    
}
原文地址:https://www.cnblogs.com/lizanqirxx/p/5350013.html