คำสั่ง if - จัดลำดับตัวเลขสามตัวที่ป้อนใน Typescript ตามลำดับจากน้อยไปมาก
ฉันต้องเขียนโปรแกรมใน TypeScript ที่จัดลำดับตัวเลขสามตัวจากอินพุตสามตัวใน HTML นี่คือสิ่งที่ฉันได้ทำไปจนถึงตอนนี้:
const lego: HTMLButtonElement = document.getElementById("sorter") as HTMLButtonElement
const z1input: HTMLInputElement = document.getElementById("zahl1") as HTMLInputElement
const z2input: HTMLInputElement = document.getElementById("zahl2") as HTMLInputElement
const z3input: HTMLInputElement = document.getElementById("zahl3") as HTMLInputElement
lego.addEventListener("click", () => {
const z1: number = Number(z1input.value);
const z2: number = Number(z2input.value);
const z3: number = Number(z3input.value);
while (z1 > z2 && z1 > z3 ) {
if (z2 > z3)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z1 + z2 + z3
}
if (z3 > z2)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z1 + z3 + z2
}
if (z2 == z3)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z1 + z2 + z3
}
}
while (z2 > z1 && z2 > z1 ) {
if (z1 > z3)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z2 + z1 + z3
}
if (z3 > z1)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z2 + z3 + z1
}
if (z1 == z3)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z2 + z1 + z3
}
}
while (z3 > z1 && z3 > z2 ) {
if (z1 > z2)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z3 + z1 + z3
}
if (z2 > z1)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z3 + z2 + z1
}
if (z1 == z2)
{
document.getElementById("output").innerText =
"Sortierte Reihenfolge:" + z3 + z1 + z3
}
}
})
})
แต่พอฉันกดปุ่ม เว็บไซต์ของฉันก็ล่ม...ลูปของฉันถูกต้องหรือเปล่า?
นี่คือโครงการสำหรับมหาวิทยาลัย ดังนั้นฉันต้องทำมันด้วยลูป
คำตอบ #1
คุณไม่ได้เปลี่ยนค่าของตัวเลขที่ไหนเลย ซึ่งหมายความว่าทันทีที่คุณเข้าสู่หนึ่งในลูป while คุณก็จะอยู่ตรงนั้นตลอดเวลาและจะไม่ออกไปไหน
นั่นคือเหตุผลที่เว็บไซต์ของคุณล่ม
ตอนนี้เกี่ยวกับวิธีแก้ปัญหา คุณยังไม่ได้พูดมากนักเกี่ยวกับว่าคุณต้องแก้ไขปัญหานี้อย่างไร และถ้าข้อกำหนดคือเพียงแค่ใช้ลูป คุณก็สามารถนำสิ่งที่คล้ายกับอัลกอริทึมการเลือก (บางครั้งเรียกว่าการเรียงลำดับแบบ min/max) มาประยุกต์ใช้ได้
คำตอบ #2
ลูปไม่ได้ถูกออกแบบมาให้ใช้แบบนี้ และคุณควรส่งรายงานข้อผิดพลาดถ้าคุณกำลังขอความช่วยเหลือ ยังไงก็ตาม ผมคิดว่าเว็บไซต์ของคุณล่มเพราะนั่นคือ 3 ลูปไม่รู้จบ
ถ้าคุณต้องทำมันด้วยลูป คุณสามารถใช้ลูปจัดเรียงตัวเลขหรืิอแค่พิมพ์ตัวเลขแบบนี้:
const lego: HTMLButtonElement = document.getElementById("sorter") as HTMLButtonElement
const z1input: HTMLInputElement = document.getElementById("zahl1") as HTMLInputElement
const z2input: HTMLInputElement = document.getElementById("zahl2") as HTMLInputElement
const z3input: HTMLInputElement = document.getElementById("zahl3") as HTMLInputElement
lego.addEventListener("click", () => {
const z1: number = Number(z1input.value);
const z2: number = Number(z2input.value);
const z3: number = Number(z3input.value);
const array : number[] = [z1, z2, z3]
array.sort()
let index = 0
document.getElementById("output").innerText = "Sortierte Reihenfolge: "
while(index < array.length){
document.getElementById("output").innerText += `${array[index]} `
index++
}
})
