Javascript 用于循环不循环和can';我不明白为什么
所以我在做一些编程练习,我被困在这一个。只需在短语中搜索Javascript 用于循环不循环和can';我不明白为什么,javascript,loops,for-loop,Javascript,Loops,For Loop,所以我在做一些编程练习,我被困在这一个。只需在短语中搜索E。我不明白为什么for没有循环,结果只是确认它没有在我的短语中找到任何E。有人看到我的for循环有什么问题吗 /* * Function that counts E's in a user-enter'd phrase **/ function countE() { var phrase = prompt("Which phrase would you lke to examine ?"); if( typeof(phrase
E
。我不明白为什么for
没有循环,结果只是确认它没有在我的短语中找到任何E
。有人看到我的for
循环有什么问题吗
/*
* Function that counts E's in a user-enter'd phrase
**/
function countE() {
var phrase = prompt("Which phrase would you lke to examine ?");
if( typeof(phrase) != "string" ) {
alert("That is not a valid entry!");
return false;
} else {
for(var eCount = 0; eCount < phrase.length; eCount++) {
if( phrase.charAt(eCount) == 'E' || phrase.charAt(eCount) == 'e' ) {
alert("There are " + eCount + " E's in \"" + phrase + "\".");
return true;
} else {
var report = confirm("I did not find any E's in your phrase. Would you like to try again?");
if(report == true) {
return countE();
} else {
alert("Ok maybe next time!");
return false;
}
}
}
}
}
countE();
/*
*计算用户输入短语中的E的函数
**/
函数计数(){
var phrase=prompt(“您想检查哪个短语?”);
如果(短语的类型)!=“字符串”){
警告(“这不是一个有效的条目!”);
返回false;
}否则{
for(var eCount=0;eCount
无论发生什么,您都将返回第一个字符。此外,您报告的是字符串中的位置,而不是e的数量
这将使您从正确的方向开始:
var eCount = 0;
for(var i = 0; i < phrase.length; i++) {
if( phrase.charAt(i) == 'E' || phrase.charAt(i) == 'e' ) {
eCount++;
}
}
if( eCount > 0 ) {
alert("There are " + eCount + " E's in \"" + phrase + "\".");
return true;
} else {
var report = confirm("I did not find any E's in your phrase. Would you like to try again?");
if(report == true) {
return countE();
} else {
alert("Ok maybe next time!");
return false;
}
}
var eCount=0;
对于(var i=0;i0){
警报(“短语+”中有“+eCount+”E”);
返回true;
}否则{
var report=confirm(“我在你的短语中没有找到任何E。你想再试一次吗?”);
如果(报告==true){
返回计数();
}否则{
警惕(“好的,也许下次吧!”);
返回false;
}
}
我从循环中删除了
return
语句(导致循环停止),并将计数报告移动到循环完成后。我还为计数创建了一个单独的变量,将循环的eCount
替换为I
。它只检查短语中的第一个字符 你差不多做到了
您只需显示第一个找到的E的索引,而不是计数。请尝试下面的代码
function countE() {
var phrase = prompt("Which phrase would you lke to examine ?");
if( typeof(phrase) != "string" ) {
alert("That is not a valid entry!");
return false;
} else {
var realCountE = 0;
var efound = false;
for(var eCount = 0; eCount < phrase.length; eCount++) {
if( phrase.charAt(eCount) == 'E' || phrase.charAt(eCount) == 'e' ) {
realCountE++;
}
}
if (realCountE > 0) {
alert("There are " + realCountE + " E's in \"" + phrase + "\".");
}
else {
var report = confirm("I did not find any E's in your phrase. Would you like to try again?");
if(report == true) {
return countE();
} else {
alert("Ok maybe next time!");
return false;
}
}
}
}
countE();
函数计数(){
var phrase=prompt(“您想检查哪个短语?”);
如果(短语的类型)!=“字符串”){
警告(“这不是一个有效的条目!”);
返回false;
}否则{
var realCountE=0;
var-efound=false;
for(var eCount=0;eCount0){
警报(“短语+”中有“+realCountE+”E”;
}
否则{
var report=confirm(“我在你的短语中没有找到任何E。你想再试一次吗?”);
如果(报告==true){
返回计数();
}否则{
警惕(“好的,也许下次吧!”);
返回false;
}
}
}
}
countE();
您试图实现的目标的伪代码:
var count = 0
for (var eCount 0 through phrase.length)
if( if( phrase.charAt(eCount) == 'E' || phrase.charAt(eCount) == 'e' )
count = count + 1;
if(count == 0)
print (COULD NOT FIND ANY E's);
else
print (Found <count> no of E's);
var计数=0
for(从0到短语.length的变量计数)
如果(如果(短语.charAt(ecoount)='E'| |短语.charAt(ecoount)='E')
计数=计数+1;
如果(计数=0)
打印(找不到任何E);
其他的
打印(未找到E);
for循环中的eCount in条件仍需要更改为ireturn CountE()需要返回Econtok以便tnx man您的代码可以工作,实际上可以工作。现在唯一的问题是它没有检查我是否键入短语。保留为空,它会说它没有找到E,它是有效的,但我想提醒他没有输入字符串。我会自己解决。如果第一个字符不是E
it wi我会提示用户吗?这似乎不是他想要的。这是什么外来语言?:)@lostandfownd我不懂JavaScript。但我可以从你的代码中看出问题所在。为了创建足够好的伪代码,我显然最终编写了伪JScript++。本质上,您需要一个单独的变量来存储计数。检查完字符串中的所有字符后,才能对E的存在和计数进行注释。