Unity选择循环结构题

unity学习上次留的C#小问题
分别用 switch…case if…else if…else 语句完成 :    将学生的考试成绩转换成不同的等级: 100 分为 A,90 分以上为 B 80 分以上但小于 90 分为 C ,依次类推, F 表示不及格。
if…else if…else很简单,将范围表示出来直接判断就可
int a = 44;
if (a == 100) {
print ("A");
} else if (a >= 90 && a < 100) {
print ("B");
} else if (a >= 80 &&a< 90) {
print ("C");
} else if (a >= 70 &&a< 80) {
print ("D");
} else if (a >= 60&&a < 70) {
print ("E");
} else if (a < 60) {
print ("F");
} else {
print ("输入错误");
}
用switch...case怎么做,switch...case的表达式只能是字符,字符串,整型值,怎么实现60~69范围的循环呢,一个一个列出来,这样太繁琐了,
看一下每个范围的共同点,开头的数字相同,是不是只需要判断一个数字就可以判断出整个范围的成绩呢,要如何实现呢。这就需要一个小算法,整型除以整型得到的还是整型,这样用成绩a/10得到1~10的数,这样使用switch...case就简单多了
int a = 44;
switch (a/10) {
case 10:print ("A");
break;
case 9:print ("B");
break;
case 8:print ("C");
break;
case 7:print ("D");
break;
case 6:print ("E");
break;
case 5:print ("F");
break;
default :print ("F");
break;
}
今天做一个循环题

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在     10次落地时,共经过多少米?第10次反弹多高?

做这道题时,应先画个图,图画好后可以发现,第一次落地到第二次落地的距离是第一次弹起高度的两倍,后面的距离同样是前一次落地到后一次落地的距离是前一次弹起的高度的两倍,这样求和公式就出来了

int sum=100,h=sum/2;

    sum=sum+h/2;

循环时从2开始循环就对了;

float sum= 100, h=sum/2;

for(int i=2;i<=10;i++){

sum=sum+2*h;

h=h/2;

}print (sum+"  "+h);

最后再留个小问题

用π/4=1-1/3+1/5-1/7+…的公式求π的近似值,直到最后一项的

绝对值小于10-6为止。(绝对值:Mathf.Abs()

更多精彩请点击http://www.gopedu.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值