Build a Roman Numeral Converter Project - Build a Roman Numeral Converter

Tell us what’s happening:

idk what happening but whenever i try to submit my code the website crashes

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>My Website</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
  <input id="number"></input>
  <button id="convert-btn">Convert</button>
  <p id="output"></p>
<script src="./script.js"></script>
</body>
</html>
/* file: script.js */
const input = document.getElementById("number");
const convert = document.getElementById("convert-btn");
const output = document.getElementById("output");


const numeral = [
  ["M", 1000],
  ["CM", 900],
  ["D", 500],
  ["CD", 400],
  ["C", 100],
  ["XC", 90],
  ["L", 50],
  ["Xl", 40],
  ["X",10],
  ["IX", 9],
  ["V", 5],
  ["IV", 4],
  ["I", 1]
]


input.addEventListener("keydown", e => {
  if(e.key === "Enter") {
    convert.click()
  }
})


convert.addEventListener("click", () => {
  let value = input.value;
  if(!value){
    output.innerText = "Please enter a valid number"
  } else if(value < 0){
        output.innerText = "Please enter a number greater than or equal to 1";
  } else if (value > 3999){
            output.innerText = "Please enter a number less than or equal to 3999";
  } else{
    let result = "";
    for (const [roman, number] of numeral){
      while (number >= value){
       result += roman;
       value -= number
     }
    }
    
    output.innerText =  result;
  }
})
/* file: styles.css */

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0

Challenge Information:

Build a Roman Numeral Converter Project - Build a Roman Numeral Converter

your condition is that number must be bigger than value, inside the loop you make value smaller, meaning your condition is never false. You have an infinite loop

1 Like

so how do I fix it if you dont mind

you need to consider what you need that loop for

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.