2016-10-14 32 views
0

所以我想要做的是製作一個網站,可以將每個字母在英語語言中的平均頻率的百分比轉換爲它們應該出現在給定消息長度的次數,這裏是我的代碼的一部分不工作。如果我的IF語句爲假,我如何獲得我的if/else語句來運行一堆函數?

var Messagelength = prompt("What is the length of a single passage from the broken-up cryptogram? Write down as the numbers appear, or else you will need to refresh this page and try again."); 
if (0 >= Messagelength)(true){ 
    confirm("No negative numbers or 0 are accepted")}; 
if (0 >= Messagelength)(false){ 
var MessagelengthA = function(number) { 
    var PercentageA = number * 0.08167; 
    confirm(PercentageA); 
}; 
}; 

我想什麼它做的是運行我的腳本像正常的休息,但僅如果從代碼的一部分看不見問一個提示發出數大於0 所以後幾次嘗試與人們告訴我做的事情,我最終決定這是我實現目標的最好敲門磚。問題仍然存在,但它不起作用。如果我要刪除第二條if語句,則不管第一條語句如何,如果我刪除第一條語句或僅留下第二條if語句,則不會發生任何事情,即使是決定Messagelength值的初始提示。因此,回顧一下,我的問題是,如何讓頁面運行26個不同功能的腳本,但前提是用戶放入提示符的數量大於0,並且不運行這26個函數比0?

編輯:我能找到我的錯誤,並糾正它。我的if語句末尾有一個分號,它本不應該在那裏。劇本終於以我想要的方式工作了。謝謝!

+1

在第三行中,您有一個'continue'語句。這隻適用於循環('for','while'等)。如果此代碼不在循環中,則不能使用該代碼。如果它在一個函數內,並且想要停止它,請改爲使用'return;'。 – blex

+0

爲什麼在不使用結果時使用'confirm'?如果你不關心他們是否點擊確定或取消,使用'alert'顯示一個彈出消息。 – Barmar

回答

1

刪除continue。這是爲了重啓循環體。

if聲明只是提供了一種在給定條件爲真時運行代碼的方法。如果是這樣,代碼塊就會運行。無論是否存在,下面的塊都會運行。

if (true) { 
 
    console.log('The condition is true so I run'); 
 
} 
 
console.log('I run just because I come next in the script'); 
 
if (false) { 
 
    console.log('I will never run'); 
 
} 
 
console.log('Again, I will run');

所以你的代碼會自動將您if語句之後運行。它聽起來像你想要的是一種方式阻止以下代碼在某些情況下運行。最簡單的方法是使用else

if (true) { 
 
    console.log('true condition, I run'); 
 
} else { 
 
    console.log('I do not since the preceding `if` block did'); 
 
} 
 

 
if (false) { 
 
    console.log('I will not run'); 
 
} else { 
 
    console.log('since the condition failed, I will run'); 
 
}

+0

但我的問題是有功能需要在if語句中,所以我會得到括號錯誤。 –

+0

@AndrewSladky支架錯誤?這沒有意義。只要正確匹配括號,就可以將函數放在'if'語句中。 –

2

你在你的問題的標題說。這是一條if/else語句,因此將其餘代碼放在else塊中。

var MessagelengthA = function(number) { 
    var PercentageA = number * 0.08167; 
    confirm(PercentageA); 
}; 
if (MessageLength <= 0) { 
    alert("No negative numbers or 0 are accepted"); 
} else { 
    MessageLengthA(MessageLength); 
    // rest of code here   
} 
+0

似乎有一個問題,雖然因爲它。在最初的if/else語句之後是一系列26個函數和變量調用,除變量名稱末尾的字母(對應於它們表示的字母值)之外,其他全部相同。 順便說一下,我試過這個,它不會在網站上運行。我唯一的 –

+0

這樣的代碼可能應該是一個循環,而不是26個不同的函數調用。如果你的變量只是一個字母或數字,它們可能應該是一個數組或對象,而不是單獨的變量。但就這個答案而言,這並不重要。你可以儘可能多的放入'else'塊。 – Barmar