循环
while循环的语法:
whule(条件) //循环条件
{
要执行的语句;//循环体
}
执行过程:
1. 判断循环条件的值.2. 条件值为true,执行循环体,执行完后回到判断条件.3. 条件值为false,跳出循环.
do while语句:
do{循环体;}
while(条件);//注意写分好
执行过程:
1. 执行do后循环体,
2. 判断条件是否成立,条件true继续执行循环体.
3. 如果条件为false则跳出循环.
注意:do-while循环至少会被执行一次.
while先判断再执行.
do-while先执行再判断.
for 语句:
for(表达式A(赋值);表达式B(比较);表达式C(递增.减))
{
循环体;
}
执行过程:
1. 计算A,转向表达式B
2. 判断表达式B条件.
3. 如果表达式B条件为假跳出for循环.
4. 如果表达式B条件为真执行循环体.
5. 循环体执行完成后计算表达式C的值,再判断表达式B的值.
break作用:
1. 在switch-case中,用于跳出switch
2. 在循环中用于跳出循环
例:
while()
{
a;b;
break:
c;
}
当运行到break将跳出循环不再执行C语句.
continue作用:
立即结束本次循环,进入下一次循环.
例:
for(i=0; i<10; i++)
{
a;b;
continue;
c;
}
当程序运行到continue语句时将不再执行c语句,直接进行i++.
三元运算符
A? B:C
例: int num = 10>5 ? 5:6
当A成立则表达式的值为B,不成立值为C.
注意:表达式B和表达式C的类型一定要相兼容.
调试程序
通常程序错误的类型
1. 编译错误,语法错误.
2. 运行错误,逻辑错误.
设置断点
单步运行
观察变量
练习题01
static void Main(string[] args)
{
int a, b, c, i = 0, num;
for (num = 100; num < 999; num++)
{
c = num / 100; //将百位数赋给C
b = num / 10 % 10;//将十位数赋给B
a = num % 10;//将个位数赋给C
if (num == c * c * c + b * b * b + a * a * a)
{
Console.WriteLine("这是一个水仙花" + num);
i++;
}
}
Console.WriteLine("共有{0}个水仙花", i);
Console.ReadKey();
---------------------------------------------------------------
输出结果:
这是一个水仙花153
这是一个水仙花370
这是一个水仙花371
这是一个水仙花407
共有4个水仙花
练习题02
//输出九九乘法口诀表
int a, b;
for (a = 1; a <= 9; a++)//控制输出9行
{
for (b = 1; b <= a; b++)//控制每行输出列数
{
Console.Write("{0}*{1}={2}\t", b, a, a*b);
}
Console.WriteLine();
}
Console.ReadKey();
//输出九九乘法口诀表
int a, b;
for (a = 1; a <= 9; a++)//控制输出9行
{
for (b = 1; b <= a; b++)//控制每行输出列数
{
Console.Write("{0}*{1}={2}\t", b, a, a*b);
}
Console.WriteLine();
}
Console.ReadKey();
练习题03
//循环录入5个人的年龄,并且计算平均年龄,如果录入的数据出现负数活着大于100立即停止报错
int age, sumAge = 0, i;
for (i = 1; i <= 5; i++)
{
try
{
Console.WriteLine("请输入年龄");
age = Convert.ToInt32(Console.ReadLine());
if (age < 0 || age > 100)
{
Console.WriteLine("您输入的数据有错误");
break;
}
sumAge += age;
}
catch
{
Console.WriteLine("您输入的数据有错误");
break;
}
}
if(i > 5)//如果i++一直自增到6那么说明for循环顺利执行完毕
{
Console.WriteLine("平均年龄为" + sumAge / 5);
}
Console.ReadKey();
int age, sumAge = 0, i;
for (i = 1; i <= 5; i++)
{
try
{
Console.WriteLine("请输入年龄");
age = Convert.ToInt32(Console.ReadLine());
if (age < 0 || age > 100)
{
Console.WriteLine("您输入的数据有错误");
break;
}
sumAge += age;
}
catch
{
Console.WriteLine("您输入的数据有错误");
break;
}
}
if(i > 5)//如果i++一直自增到6那么说明for循环顺利执行完毕
{
Console.WriteLine("平均年龄为" + sumAge / 5);
}
Console.ReadKey();
练习题04
/*在while中使用break实现要求用户一直输入用户名和密码
只要用户名不是admin 或者密码不是888888就一直输入,如果正确就提示成功.
*/
string userName, password;
bool flag = true;
while (true)
{
Console.WriteLine("请输入用户名");
userName = Console.ReadLine();
Console.WriteLine("请输入密码");
password = Console.ReadLine();
if (userName == "admin" && password == "888888")
{
Console.WriteLine("登陆成功!");
break;
}
else
{
Console.WriteLine("账户名或密码错误,请重新输入!");
}
只要用户名不是admin 或者密码不是888888就一直输入,如果正确就提示成功.
*/
string userName, password;
bool flag = true;
while (true)
{
Console.WriteLine("请输入用户名");
userName = Console.ReadLine();
Console.WriteLine("请输入密码");
password = Console.ReadLine();
if (userName == "admin" && password == "888888")
{
Console.WriteLine("登陆成功!");
break;
}
else
{
Console.WriteLine("账户名或密码错误,请重新输入!");
}