if结构
1.if结构
*if选择结构是根据条件判断之后再做处理
①基本if结构
if(条件)
{
//代码块
}
②if-else选择结构
if(条件)
{
//代码块1
}
else
{
//代码块2
}
③多重if结构
if(条件1)
{
//代码块1
}
else if(条件2)
{
//代码块2
}
④嵌套if结构
if(条件1)
{
//代码块1
if(条件2)
{
//代码块2
}
}
switch结构
1.条件判断的表达式类型
①整数
②字符
③字符串
2.break语句的要求
①每个case都有break
②default也要有break
③case中没有其他语句时,不需要break语句
3.注意事项
①case子句的摆放没有先后顺序要求,可任意调整
②case语句不能具有相同值
③case中的值必须是常量表达式,不允许使用变量
while循环结构
1.while循环
while(循环条件)
{
//循环体
}
*先执行,再判断
do-while循环结构
1.do-while循环
do
{
//循环体
}while(循环条件)
*先执行,再判断
*while循环结构和do-while循环结构的区别
(1)语法不同
(2)执行次序不同
(3)初始情况不满足循环条件时
①while循环一次都不会执行
②do-while循环不管任何情况都至少执行一次
for循环结构
1.for循环的语法和执行顺序
for( 参数初始化 ; 条件判断 ; 更新循环变量)
{
//循环操作体
}
(1)执行顺序
①第一次循环:参数初始化→条件判断→循环操作体→更新循环变量
②第一次之后的循环:条件判断→循环操作体→更新循环变量
(2)代码规范
①格式对齐
②代码的缩进
foreach循环结构
1.foreach语法
foreach(元素类型 元素变量名 in 数组名){
//循环操作体
}
2.foreach是遍历给定数组的所有元素,所以foreach循环结构不能改变数组中各位元素的值
3.Var
Var可以理解为匿名类型,认为他是一个变量的占位符,一个数组的类型
特点:
1)必须在定义是初始化(var s = “abc”; 不能:var s; s = “aaaa”)
2)一旦初始化完成,就不能再给变量赋值与初始化
3)var要求的是局部变量
4)var和Object不同,他在效率上和使用强制类型方式定义变量一样
// 声明并赋初始值
var name = "张三";
var age = 10;
var sex = true;
// 获取变量的数据类型
Type t_Name = name.GetType();// string
Type t_Age = age.GetType(); // int
Type t_Sex = sex.GetType(); // bool
// 打印结果
Console.WriteLine("变量name的类型是{0}\n,变量age的类型是{1}\n,变量sex的类型是{2}", t_Name.ToString(), t_Age.ToString(), t_Sex.ToString());
// 不自动关闭,等待用户输入
Console.ReadLine();
跳转语句
1.break语句:
①在switch结构中用于退出某个case语句。
②循环中程序跳出当前循环结构,并继续执行循环结构后的语句
2.continue语句
结束当前循环的本次循环,并开始执行当前循环的下一次循环
循环应用的区别
1.while循环:
while循环是先判断条件表达式是否成立。若条件成立,则执行循环体;否则结束循环体
2.do-while循环:
do-while循环先执行一次循环体再判断表达式是否成立。若条件成立,则继续循环;否则结束循环
3.for循环:
for循环必须使用整型变量做循环计算器,通过条件表达式限定计数器变量值来控制循环
4.foreach循环
foreach循环用于遍历给定数组的所有值
数组
1.数组是一个变量,存储相同数据类型的一组数据
*所以↓
①声明一个变量就是在内存空间划出一块合适的空间
②声明一个数组就是在内存空间划出一串连续的空间
2.数组基本要素
①标识符:数组的名称,用于区分不同的数组
②数组元素:向数组中存放的数据
③元素下标:对数组元素进行编号,从0开始,数组中每个元素都可以通过下标来访问
④元素类型:数组元素的数组类型
3.小结:
①数组长度固定不变,避免数组越界
②数组中的所有元素必须属于相同的数据类型
4.使用数组的四个步骤
(1)声明数组:
告诉计算机数据类型是什么
数据类型[] 数组名;
*声明数组时不规定数组长度
(2)分配空间:
告诉计算机分配几个连续的空间
数据类型[] 数据名 = new 数据类型[大小];
(3)赋值
向分配的格子里放数据
*赋值方法
①边声明边赋值
②动态地从键盘录入信息并赋值
(4)处理数据
5.获取数组的长度:
数组名.Length
对象数组
1.数组初始化
①int[] arr = new int[5]{0,1,2,3,4};
②int[] arr = new int[]{0,1,2,3,4}
*省略长度,赋值的元素数量就是初始数组的长度
③int[] arr = {0,1,2,3,4}
*省略new
2.小结
①用户自定义类也可以创建数组(对象数组)
②数组中的每个元素都是用户自定义类的类型
冒泡排序
1.冒泡排序:每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后
2.冒泡排序使用二重循环实现(升序)
for(i=0;i<数组名.Length-1;i++){
for(j=0;j<数组名.Length-1-i;j++){
if (数组名[j]>数组名[j+1])
{
int item = 数组名[j];
数组名[j] = 数组名[j + 1];
数组名[j + 1] = item;
}
}
}
3.冒泡排序速记口诀(升序)
N个数字来排队
两两相比小靠前
外层循环N-1
内层循环N-1-i
*N代表元素个数(数组长度)
*如果要降序排序,只要把程序中if条件的大于号换成小于号就可以了