驽驴十驾 2013-12-12 14:57 采纳率: 71.4%
浏览 5977
已采纳

用javascript实现从1加到100的和,代码出错

农民工自学JS,谦卑地向各位请教,

 start=prompt("请输入开始的值:");

 end=prompt("请输入结束的值:");

 alert("开始的值是:"+start);

 alert("结束的值是:"+end);

 alert("从"+start+"+到"+end+"的和="+sum);

   var sum=0
   if (start≤end)
   sum+=start++    

假如去掉最后三行代码,并且倒数第四行alert中的字符串结尾处,去掉+sum,程序是按照设想进行:

提示输入开始值-提示输入结束值-确认开始值-确认结束值-弹出alert对话框

加入最后三行代码,浏览器什么都不显示了,

已经折腾一晚上了,请会的朋友指点一下,万分感谢!    
  • 写回答

5条回答 默认 最新

  • Geoff黄 2013-12-13 03:39
    关注

    首先,要先进行变量的声明然后才能使用该变量。所以, var sum=0 要写在 alert("从"+start+"+到"+end+"的和="+sum); 其次,既然是要实现从1加到100,那么就需要用到循环了,单纯的if判断相加是不可以的,需要用到循环来进行相加。循环又包括for、while和 do while几种,每种都可以做到循环只是循环的条件不同,你可以查看一下这方面的资料。在这里如果用for循环实现的话可以这么写:
    start=start*1;end=end*1;
    //定义一个中间变量n用于进行计算。
    for(var n=start;n<=end;n++)
    {

    sum=sum+n;
    }
    这个之所以start和end都乘1是因为prompt返回的是一个字符串如果直接相加就变成了字符串相加了会得到一大串字符而不是想要的数字,如:'1'+'100'得到的结果是'1100'而不是101,通过乘1可以简单地把字符串类型的数字转换成数字,这样就可以再进行相加的操作了。最后得到的sum的值就是你想要的结果。还有一点,在程序当中‘≤’是用‘<=’表示,‘≥’用‘>=’表示,等于是‘==’,不等于是‘!=’。
    最后要说的是,为了养成良好的编程习惯要注意标点符号的使用如结尾用分号“;”等,在一些编程语言中没有';'结尾会报错的。

    start=prompt("请输入开始的值:");

    end=prompt("请输入结束的值:");

    alert("开始的值是:"+start);

    alert("结束的值是:"+end);
    var sum=0;
    start=start*1;end=end*1;

    for(var n=start;n<=end;n++)
    {
    sum=sum+n;
    }
    alert("从"+start+"+到"+end+"的和="+sum);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)