C#部分基础知识整理(语句)
1.if语句
(1)最简单的if语句
if(表达式)
{
语句
}
表达式为关系表达式或者逻辑表达式
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个整数:");
int iNum = Convert.ToInt32(Console.ReadLine());//Console.ReadLine返回的是字符串类型的数据,所以使用Convert.ToInt32进行强制转换
if (iNum % 2 == 0)
{
Console.WriteLine("是偶数");
}
Console.ReadLine();
}
}
}
if语句中表达式为bool值的规范写法:如果flag本身就是一个bool值那么直接写成if(flag)
(2)if…else语句
if(表达式)
{
语句1
}
else
{
语句2
}
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个整数:");
int iNum = Convert.ToInt32(Console.ReadLine());//Console.ReadLine返回的是字符串类型的数据,所以使用Convert.ToInt32进行强制转换
if (iNum % 2 == 0)
{
Console.WriteLine("是偶数");
}
else
{
Console.WriteLine("是奇数");
}
Console.ReadLine();
}
}
}
使用条件运算符实现上面程序:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个整数:");
int iNum = Convert.ToInt32(Console.ReadLine());//Console.ReadLine返回的是字符串类型的数据,所以使用Convert.ToInt32进行强制转换
string str= iNum % 2 == 0 ? "是偶数" : "是奇数";
Console.WriteLine(str);
Console.ReadLine();
}
}
}
(3)if…else if…else语句
if(表达式)
{
语句1
}
else if
{
语句2
}
else if
{
语句n
}
else
{
语句n+1
}
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入银行的简称(例如ICBC、CBC):");
string strName = Console.ReadLine();
if (strName == "ICBC")
{
Console.WriteLine("中国工商银行");
}
else if (strName == "CBC")
{
Console.WriteLine("中国建设银行");
}
else if (strName == "ABC")
{
Console.WriteLine("中国农业银行");
}
else
{
Console.WriteLine("输入银行简称错误!");
}
Console.ReadLine();
}
}
}
2.switch多分支语句
switc(表达式)//表达式为整型、char、string、bool类型
{
case常量表达式1:(注意这里是冒号)
语句1;
break;
case常量表达式2:
语句2;
break;
…
case常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入银行的简称(例如ICBC、CBC):");
string strName = Console.ReadLine();
switch (strName)
{
case"ICBC"://也可多个case进行判断
Console.WriteLine("中国工商银行");
break;//退出
case "CBC":
Console.WriteLine("中国建设银行");
break;
case "ABC":
Console.WriteLine("中国农业银行");
break;
default:
Console.WriteLine("输入银行简称错误!");
break;
}
Console.ReadLine();
}
}
}
switch与if…else if…else的操作对象不同。
3.while循环语句
while(表达式)//关系表达式或逻辑表达式
{
语句(应该有能够使循环结束的条件语句)
}
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
//计算1到100的累加和
int i = 1;
int sum = 0;
while (i <= 100)
{
sum = sum + i;//也可以写成sum+=i
i++;//i进行递增
}
Console.WriteLine("1到100的累加和:"+sum);
Console.ReadLine();
}
}
}
在C++中可以使用while(0)/while(1)表示条件T/F,而在C#中不可以,因为C#中while的表达式只能是bool值。
4.do…while语句
do
{
语句
}while(表达式);//关系表达式或逻辑表达式,分号不能省略
循环体中的语句至少执行一次
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
//计算1到100的累加和
int i = 1;
int sum = 0;
//先执行再判断
do
{
sum+=i;
i++;
}while(i<=100);//分号不能漏
Console.WriteLine("1到100的累加和:"+sum);
Console.ReadLine();
}
}
}
5.for循环语句
for(表达式1;表达式2;表达式3);
{
语句
}
表达式1通常用来初始化循环遍历;表达式2是一个关系表达式或逻辑表达式,用来作为判断条件;表达式3通常用来对循环变量进行递增或者递减操作
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
//计算1到100的累加和
int i;
int sum = 0;
for (i = 1; i <= 100; i++)
{
sum += i;
}
Console.WriteLine("1到100的累加和:" + sum);
Console.ReadLine();
}
}
}
表达式1可以省略但后面的分号不能省略,省略后要在for循环前面对循环变量进行初始化操作
表达式2可以省略但前后的分号不能省略
表达式3可以省略但前面的分号不能省略
三个表达式也可同时省略但两个分号不能省略
总之,无论使用for循环的那种变体形式,for关键字后面的()中都必须保证有两个分号。
在for循环中,表达式1和表达式3处都可以使用逗号,即:当包含一个以上的表达式,中间用逗号间隔。表达式2要用逻辑运算进行连接一个以上的判断条件。
6.foreach语句
foreach(【类型】 【迭代变量名】 in 【集合表达式】)
{
语句
}
7.转移语句
break的使用
break语句通常应用在switch、while、do…while或for循环中,一般与if语句搭配使用
int i,sum=0;
for (i = 1;; i++)//缺少表达式2,会造成死循环
{
if (i > 100)
{
break;
}//当if语句与break搭配使用时可跳出死循环
sum += i;
}
continue的使用
continue语句通常应用在while、do…while或for循环中,一般与if语句搭配使用,用来开始一次新的循环
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
//计算100以内偶数的和
int i;
int sum = 0;
for (i = 1;i<=100; i++)
{
if (i%2==1)
{
continue;//当满足if条件时不会继续执行sum += i; 而是进行一次新的循环
}
sum += i;
}
Console.WriteLine("1到100的偶数和:" + sum);
Console.ReadLine();
}
}
}
break和continue绝对不能单独的用于if语句中
goto的使用
可以改变代码的执行顺序
程序示例:
namespace DemoPractice5
{
class Program
{
static void Main(string[] args)
{
int i=0,sum=0;
label:
i++;
sum += i;
if(i<100)
{
goto label;//跳转到label
}
Console.WriteLine("1到100的和:" + sum);
Console.ReadLine();
}
}
}
一般不主张使用goto语句