主题:  js的一道习题求教

liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
#12005/11/10 8:35:42

下面是我在课本上的一到习题!根据学生的等级评A B C D级。
<script language="javascript">
document.write("<font size='+1'>");
while(true){
var score=eval(prompt("Please input the score:",""));
if (score<0 || score>100){
document.writeln("The score should be between 0 to 100!");
continue;
}
if(score>89 && score<101){
document.writeln("The degree is: A");
}
else if (score>79 && score<90){
document.writeln("The degree is: B");
}
else if(score>69 && score<80){
document.writeln("The degree is: c");
}
else if(score>59 && score<70);{
document.writeln("The degree is: D");
}
else {
document.writeln("It is bad!");
}
answer = prompt("Do you want to input another student?","");
if(answer !="y"){
break;
}
}
document.write("终于可以休息了...<br>");
</script>

我仔细的检查过上面的代码好几次了,都没发现什么错误啊!但是浏览的时候就是空白页,什么提示框都没有,真奇怪,请指教吧!呵呵



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
#22005/11/10 8:57:33
else if(score>59 && score<70);{



liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
#32005/11/10 14:45:22
呵呵,真是马虎,谢谢啦!
我觉得这个javascript不想vbscript,即使出错了好像不会给出提示.



liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
#42005/11/11 16:59:49
呵呵,我看过浏览器的左下角,是没有显示网页有错误的.知识显示"完毕".
上面的代码是多了个";"的问题.
经过高人指点我帮上面的代码改了一下,但是看不到效果,请指教吧!呵呵
<script language="javascript">
var score=eval(prompt("Please input the score:",""))
switch(score){
case score>89 && score<101:
document.writeln("The degree is: A");
break;
case score>79 && score<90:
document.writeln("The degree is: B");
break;
    case score>69 && score<80:
document.writeln("The degree is: C");
break;
    case score>59 && score<70:
document.writeln("The degree is: D");
break;
    case score<59:
document.writeln("The degree is: Bad");
break;
}
answer = prompt("Do you want to input another student?","");
if(answer !="y"){
break;
}

</script>

编辑历史:[此帖最近一次被 allinhands 编辑过(编辑时间:2005-11-11 17:08:40)]


缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52005/11/11 17:26:54
break必须放在一个循环体内
最后的prompt如果回答是也没有返回到最前面,也就无法执行下去了.应该放在一个
while(true){
.....
}
里面


switch的用法也有问题



你第一次的代码只要去掉那个;就OK了



liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
#62005/11/11 17:48:17
呵呵,经过高手的指点,基本可以达到效果了,我还有问题想问问啊!呵呵
我现在是把代码改成:
<script language="javascript">
var score=prompt("Please input the score:","")
switch(true){
case score>89 && score<101:
document.writeln("The degree is: A");
break;
case score>79 && score<90:
document.writeln("The degree is: B");
break;
case score>69 && score<80:
document.writeln("The degree is: C");
break;
case score>59 && score<70:
document.writeln("The degree is: D");
break;
case score<59:
document.writeln("The degree is: Bad");
break;
answer = prompt("Do you want to input another student?","");
if(answer !="y"){
break;
}
}

我的问题就是:我把原来的switch(score)改成了switch(true),我觉得很奇怪,switch()括号里面不是一个控制条件来的吗?下面的case不是根据这个参数的值来判断的吗?为什么把参数改成true就行了呢?
另外如果我要在上面的switch语句的基础上在加上下列的语句去做判断是否重新输入,该怎么加一个循环还是怎样呢?
answer = prompt("Do you want to input another student?","");
if(answer !="y"){
break;



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#72005/11/11 19:01:27
function do(){
var score=prompt("Please input the score:","")
switch(true){
case score>89 && score<101:
document.writeln("The degree is: A");
break;
case score>79 && score<90:
document.writeln("The degree is: B");
break;
case score>69 && score<80:
document.writeln("The degree is: C");
break;
case score>59 && score<70:
document.writeln("The degree is: D");
break;
case score<59:
document.writeln("The degree is: Bad");
break;
answer = prompt("Do you want to input another student?","");
if(answer !="y"){
return false;
}else{
do();
}
}
}

do();




var s = 1;
switch(s){
case 1:
document.write("1");
break
case 2:
document.write("2");
break;
}





liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
#82005/11/14 9:04:03
呵呵,试试看!