while循环语句:先判断再执行
int i=0;
while(i<1000)
{
Console.WriteLine("下次考试一定要细心");
i++;
}
1、输入全部人数,和每个人的分数,求全班人总成绩和平均成绩:
Console.WriteLine("请输入人数:");
int studentcount = Convert.ToInt32(Console.ReadLine());
int i = 0;
double score = 0;
double sum = 0;
while (i < studentcount)
{
Console.WriteLine("请输入第{0}个人成绩为:", i + 1);
score = Convert.ToDouble(Console.ReadLine());
sum += score;
i++;
}
Console.WriteLine("总成绩为:{0}", sum);
Console.WriteLine("平均成绩为:{0}", sum / studentcount);
放学问题:
2、老师问学生,这道题会做了吗?如果学生答“会了(y)”,则可以放学。如果学生不会做(n),则老师再讲一遍,再问学生是否会做了....
直到学生会为止或者老师给他讲了10遍还不会,都要放学。
Console.WriteLine("这道题你会了吗?(y/n)");
string answer = Console.ReadLine();
int i = 0;
while(answer=="n"&&i<10)
{
Console.WriteLine("老师讲一遍题!");
Console.WriteLine("这道题你会了吗?(y/n)");
answer = Console.ReadLine();
while(answer!="y"&&answer!="n")
{
Console.WriteLine("只能输入y或者n,请重新输入!");
answer=Console.ReadLine();
}
i++;
}
Console.WriteLine("放学吧!");
do-while 语法:先执行,后判断
do{循环体;}
while(条件);
执行过程:
1、执行循环体。 2、判断条件是否成立,如果条件为true,则转向1 如果条件为false,则转向3。 3、跳出循环,循环结束。
假如循环条件一开始就不成立,对于while循环,一次都不会执行。对于do-while循环体执行一次。所以do-while循环体会执行一次。所以,do-while的循环体一般至少会被执行一次。
【总结】while先判断(条件)后执行(循环体),do-while 先执行(循环体)后判断(条件)
明天小兰就要登台演出了,老师说再把明天的舞蹈表演一遍,如果满意,小兰就可以回家了。否则就需要再练习一遍,直到老师满意为止。
string answer="";
do
{
Console.WriteLine("表演");
Console.WriteLine("满意吗?(yes/no)");
answer=Console.ReadLine();
}
while(answer=="no");
Console.While("恩,可以你回去吧!");
【练习】不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。和求所有数的和
string s="";
int sum=0;
int i=0;
int a = 0;
do
{
Console.WriteLine("输入数字:");
s = Console.ReadLine();
if (s != "end")
{
try
{
i = Convert.ToInt32(s);
sum = sum + i;
if (a < i)
{
a = i;
}
}
catch{
Console.WriteLine("输入错误,请输入数字或者end!");
}
}
} while (s != "end");
Console.WriteLine("上面输入的数字之和为{0},其中最大的为{1}",sum,a);
程序调试:
1)设置断点
2)单步运行
3)观察变量
for 循环:一般用于已知次数
for(表达式1;表达式2;表达式3)
{
循环体;
}
一般情况:
表达式1,用于定义循环变量和对循环变量赋初值
表达式2,循环条件
表达式3,用于改变循环变量的值。
执行过程:
第一步:计算表达式1,转向第2步
第二步:计算表达式2(循环条件),如果表达式2的值为true(执行循环体)转向第三步,如果表达式2的值为false,跳出循环
第三步:执行循环体,转向第4步。
第四步:执行表达式3,转向第2步。
第五步:循环结束。
水仙花数为:假设一个三位数:abc 则a*a*a+b*b*b=a*b*c成立
【练习】找出100-999间的水仙花数?
for (int i = 100; i <= 999; i++)
{
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if (i == a * a * a + b * b * b + c * c * c)
{
Console.WriteLine(i);
}
}
【乘法表】
正方形:
int sum = 0;
for (int i = 1; i <= 9; i++)
{
//外层循环控制行数 即i代表行号
for (int j = 1; j <= 9; j++)
{
//第i行的第j个式子
sum = i * j;
Console.Write("{0}*{1}={2:00} ", i, j, sum);
}
Console.WriteLine();
}
梯形:
int sum = 0;
for (int i = 1; i <= 9; i++)
{
//外层循环控制行数 即i代表行号
for (int j = 1; j <= i; j++)
{
//第i行的第j个式子
sum = i * j;
Console.Write("{0}*{1}={2:00} ", i, j, sum);
}
Console.WriteLine();
}
例子:
int number = 0;
bool isNumber=false;
while (isNumber == false)
{
try
{
number = Convert.ToInt32(Console.ReadLine());
isNumber = true;
}
catch
{
Console.WriteLine("你刚刚输入的不是数字!");
isNumber = false;
}
}
for (int i = 0; i < number+1; i++)
{
Console.WriteLine("{0}+{1}={2}",i,number-i,number);
}
break 用于循环中,退出当前循环:
1)可以用于switch-case 判断中,用于跳出switch
2)用在循环中,用于立即跳出(终止)循环
while(...)
{
....
....
....
break;//直接跳出循环,不再执行后面内容
...
...
}
for(int i=0;i<5;i++)
{
Console.WriteLine("输入年龄:");
int s=
if(s>100||s<0)
break;
}
在while中用break实现要求用户一直输入用户名和密码,只要不是admin、88888就一直提示要求重新输入,如果正确则提示登录成功。
while(true)
{
Console.WriteLine("请输入用户名:");
string usename=Console.ReadLine();
Console.WriteLine("请输入密码:");
string password=Console.ReadLine();
if(usename=="admin"&&password=="88888")
{
break;
}
Console.WriteLine("输入的用户名或者密码有误,请重新输入!");
}
Console.WriteLine("登录成功!");
1~100之间的整数相加,得到累加值大于20的前数
int i=1;
int sum=0;
for(i=1;i<=100;i++)
{
sum+=i;
if(sum>=20){break;}
}
Console.WriteLine(i);
continue (结束本次循环)
执行过程: 用于循环中,程序一旦执行到continue语句,立即结十分(就是不再执行循环体重continue下面的语句了),直接进行下次循环。(do-while/while 直接进行下一次循环条件的判断,如果成立,则再次进入循环。对于for循环,先执行表达式3,再判断循环条件是否成功!)
【例子】用while-continue实现求能被7整除的之外所有数的和;
方法一:
int i=1,sum=0;
while (i<=100)
{
if(i%7==0)
{
i++;
continue;
}
sum+=i;
i++;
}
Console.WriteLine(sum);
方法2:
int sum=0;int =0;
while(i<100)
{
i++;
if(i%7==0)
{
continue;
}
sum=sum+i;
}
Console.WriteLine(“和是:”+sum);
Console.ReadLine();
三元表达式:
表1?表2:表3
执行过程:
首先执行表达式1,表达式1应该是一个能够计算成bool类型的值,如果表达式1的值为true,则表达式2的值作为整个表达式的值,如果表达式1的值为false,则表达式3的值做为整个表达式的值。
表达式2和表达式3的值类型必须相兼容
int a = 10, b = 20;
int max = a > b ? a : b;
Console.WriteLine(max);
【小节】
顺序结构:语句顺序执行
分支结构:语句在满足条件下执行
if, if-else ,if-else if ,switch-case, 表1?表2:表3(三元表达式)
循环结构:语句在满足条件下循环执行多次
while ,do-while,for
跳转语句:
break,continue,goto
|