2016-04-20 1 views
0

aufgefordert wird Ich habe ein Problem beim Erstellen einer Schleife, die zu den vorherigen Funktionen zurückgeschleift wird, wenn der Benutzer das Programm nicht stoppen will (wenn der Benutzer will, dass es aufhört, wird das Programm mit anderen Funktionen fortgesetzt).Wie gehe ich zurück zu den vorherigen Funktionen, wenn stop nur bei

Ich brauche eine Liste von Funktionen erstellen Basis Umwandlung zu tun, während der Logik zeigt:

  • Schritt 1: prompt für eine Reihe
  • Schritt 2: Eingabeaufforderung für ein Alphabet (b für Binary/o für Octal/h für Hexadezimal) als Basis
  • Schritt 3: wandelt es in eine Zeichenfolge (zB "108sup10 = 1101100sup2" & "63300268sup10 = 3C5E2A7sup16")
  • Schritt 4: in einer Erklärung die Zeichenfolge Antwort aufmerksam (zB: Basis 10 Nummer ist 3C5E2A7 in Hexadezimal)
  • Schritt5: Aufforderung zum Stoppen. Wenn die Benutzereingabe nicht "s" ist, wird Schritt 1 ~ 4 wiederholt, andernfalls wird mit Schritt 6 fortgefahren.
  • Schritt 6: Alarmieren Sie die vom (wiederholten) Step1-Eingang eingegebene Max- und Min-Nummer.

für Schritt 1,2,3,4,6, ist es obligatorisch Funktionen zu verwenden. Kann ich wissen, wie ich für STEP5 codiere, um von Schritt 1-4 zurück zu gehen, wenn das Stoppen gefragt wird? Brauche ich dafür eine Funktion?

//prompt to get number 
function getNumber() { 
    var myNumber; 
    do { 
     myNumber = Number(prompt("Enter an unsigned base 10 number:")); //prompt user's input to be excecuted first 
    } while (myNumber < 0) //loop will run again and again as long as the number is less than zero 
    return myNumber; 
} 

//prompt to get base 
function getBase() { 
    var myBase; 
    do { 
     myBase = (prompt("Enter b for binary, o for octal and h for hexadecimal")); 
    } while (!(myBase == "b" || myBase == "B" || myBase == "s" || myBase == "S"|| myBase == "h" || myBase == "H")) //loop if the input is not b, s or h 
    return myBase; 
} 

//converting the base to the number 
function baseConversion(number, newBase) { 
    var arr = []; 

    if (newBase == "b" || newBase == "B") { 
     newBase = 2; 
    } else if (newBase == "o" || newBase == "O") { 
     newBase = 8; 
    }else if (newBase == "h" || newBase == "H") { 
     newBase = 16; 
    } 

    do { //putting the each remainder at the front of the array 
     arr.unshift(number%newBase); 
     number = Math.floor(number/newBase); //round down the divided answer 
    } while (number>newBase-1) //loop as long as this condition holds 
    arr.unshift(number); 
    return arr; 
} 

//function to string the arrays 
function convertToString(number, base) { 
    var resultString = "" 
    for (var i = 0; i < results.length; i++) { 
     var digit = results[i]; 
     if (digit > 9) { 
      switch (digit) { 
       case 10: 
        digit = 'A' 
        break; 
       case 11: 
        digit = 'B' 
        break; 
       case 12: 
        digit = 'C' 
        break; 
       case 13: 
        digit = 'D' 
        break; 
       case 14: 
        digit = 'E' 
        break; 
       case 15: 
        digit = 'F' 
        break; 
      } 
     } 
     resultString += digit; 
    } 

    return resultString 
} 

//function to alert the answer statement 
function alertAnswer() { 
    var statement = alert("Base 10 number:" + myNumber + "is" + base + "in" + myBase); 
    return statement; 
} 

//function to find the maximum number in the array 
function myMax(myArray) { 
    var max = myArray[0]; 
    for (var z = 0; z < myArray.length; z++) { 
     if (myArray[z] > max) { 
      max = myArray[z]; 
     } 
    } 
    return max; 
} 

//function to find the minimum number in the array 
function myMin(myArray) { 
var min = myArray[0]; 
for (var z = 0; z < myArray.length; z++) { 
    if (myArray[z] > min) { 
     min = myArray[z]; 
    } 
} 
return min; 
} 
+0

betrachte 'hexString = yourNumber.toString (16);' anstelle der langen switch-Anweisung –

Antwort

0

Sorry, wenn ich mich irre, aber ist das, was Sie suchen?

var promptVar = false; 

do 
{ 
//function calls for steps 1~4 
prompt(); 
} 
while (promptVar == false) 

function prompt() 
{ 
    if (confirm('Do you want to continue to step 6?')) 
    { 
     promptVar = true; 
    } else { 
     promptVar = false; 
    } 

} 
Verwandte Themen