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;
}
betrachte 'hexString = yourNumber.toString (16);' anstelle der langen switch-Anweisung –