xhbmj(我右边有★★★★★) :错误:循环之外不能有break
qiushuiwuhen(秋水无恨) :错误:例外被抛出且未被接住由于事实上的我c函数会被很多地方用到,我不希望这个函数的使用需要附加条件
例如,秋水的方法需要在最外层的调用里加上try catch语句;在本例程序中,是在a函数里面加
qiushuiwuhen(秋水无恨) :错误:例外被抛出且未被接住由于事实上的我c函数会被很多地方用到,我不希望这个函数的使用需要附加条件
例如,秋水的方法需要在最外层的调用里加上try catch语句;在本例程序中,是在a函数里面加
{
case "1": ;;break;
case "2": ;;break;
}就是要出现某种情况结束吗?那就用一个对象记录状态,然后到某种状态的时候return不就完啦。
1."循环之外不能有break"是程序运行出错时MS Script Debugger说的,至于Switch算不算反例,JK也不大清楚。
2.return只能结束本函数的执行,不能终止script。在本例中,如果在c函数里加上一个return ,结果是alert("没有达到目的!");这一句仍会执行。欢迎继续关注!
function a(){
if(!b()) return;
alert("没有达到目的!");
}
function b(){
if(!c()) return false;
// do something esle
return true;
}
function c()
{
//请在这里加一段scritp代码
if(some_thing_wrong) reutrn false;
//other code ....
return true; // normal exit;
}a();
把checknamestr函数里的这一段
if (flagi==i)
{
alert("username successful!");
return;
}
里的return 改成return true再试一试
这是程序设计的基本常识。
假如搂主的想法能够实现,程序设计的历史就要改写了。
回复填错地方了,欢迎斑竹帮JK删掉,连同本留言
比如alert();confirm()等,它虽说不能永久终止其后的程序,但是它可以暂时推后在它后面的程序,为什么不能把这个暂时推到无穷呢。
JK认为,不论程序设计的常识到底有哪些,有用的并且实现起来不很难的功能都应该实现,如果没有实现的话,那只能说明设计这一种语言的人们还应该加油。
JK不肯定,但是希望Script是一种理想的程序,所以抱着试一试的心情来请教大家。谢谢!欢迎继续关注!
欢迎继续关注!
呵呵 不知这个对你有没帮助.....============================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<div id=ttText style="display:none">
程序运行中......<BR>
<span id=currentState></span> <button onclick="CANCLE = true;">停止</button><BR>
</div>
<button onclick="run_step1()" id=button1>开始</button>
<span id=result></span>
<script>
var i=0;
var sum =0;
var CANCLE = false;
var max = 1000000; //循环的终点
var step = 9999; //步长:选择合适的步长可以在响应能力和计算速度上获得比较好的折衷。
//(步长用9999而不是10000只是为了显示的时候好看,其实都一样)
var timeStart = "";
function run_step1()
{
if (i == 0)timeStart = new Date();
ttText.style.display="";
button1.style.display="none";
setTimeout("run_step2()",20);
CANCLE = false;
}
function run_step2()
{
if (CANCLE)
{
ttText.style.display="none";
button1.style.display="";
button1.value="继续";
return;
}
if (i == null)
{
//初始化
//注意:这里不能写var,因为循环变量和结果都为全局变量。
i = 1;
sum = 0;
run_step2();
}
else if (i<=max)
{
var endValue = i+step;
if (endValue >max) endValue = max+1;
for (j=i; j<endValue ; j++)
sum += j;
i+=step;
currentState.innerText = i;
result.innerText = "临时结果:"+sum;
setTimeout("run_step2()",0);
}
else
{
run_step3();
}
}
function run_step3()
{
ttText.style.display="none";
button1.style.display="";
button1.value="重新开始";
result.innerText = "最终结果"+sum+" 用时:"+(new Date-timeStart)/1000+"秒"
sum = 0;
i = 0;
}
</script>
</body>
</html>
==================================================
先谢谢你的代码!
看了一下这段程序,它是通过function run_step2()调用自己实现循环,通过改变全局变量来实现是否还继续调用自己。不过我还是不能从它得到启发,也不能实现我最初的意图。欢迎继续关注
看这样可不可以:
<script>
function a(){
if(!b())return;//在调用其他函数时判断结果
alert("没有达到目的!");
}
function b(){
c();
//return true;//如果此行略过则预设值为false
}
function c()
{//请在这里加一段scritp代码}a();</script>
不觉己有一年
诸兄弟可好!
现在的问题是:
c函数是JK写,但是用c函数的人却不一定是JK,JK不希望在告诉别人用这个函数的时候还要附加很多条件。原题见这一贴:http://expert.csdn.net/Expert/topic/1092/1092742.xml?temp=.6329157
里面还有一个问题没有解决:有可能发生抢焦点的死循环(如该贴说明的第一条)
将那个问题进行精简,就成了这一贴的问题hehe
欢迎继续关注
事先总的有个约定吧?应当由c的调用者决定是否继续。
至少至少这个问题是个隐患,JK希望消除这个隐患,看来这个希望是要落空的了多谢多谢