Javascript 使用开关盒转换
我是JavaScript的初学者,我的代码有问题。当我的代码没有输出答案时,我似乎无法找出它有什么问题。我试图将用户输入的罗马数字转换为相应的印度教阿拉伯数字。这是到目前为止我的代码Javascript 使用开关盒转换,javascript,Javascript,我是JavaScript的初学者,我的代码有问题。当我的代码没有输出答案时,我似乎无法找出它有什么问题。我试图将用户输入的罗马数字转换为相应的印度教阿拉伯数字。这是到目前为止我的代码 <!doctype html> <html> <body> <h2>JavaScript Roman to Decimal Converter(1-10)</h2> <p id="demo"></p> <input id="r
<!doctype html>
<html>
<body>
<h2>JavaScript Roman to Decimal Converter(1-10)</h2>
<p id="demo"></p>
<input id="roman" value=""/>
<button onclick="myFunction()">Convert</button>
</form>
<script>
function myFunction(){
var sum=0;
var len=romanNum.length();
var i;
var previous=10;
for (i=0; i<len; i++)
{
switch (romanNum.charAt(i))
{
case 'X':
sum=sum+10;
if(previous<10)
sum=sum-2*previous;
previous=10;
break;
case 'V':
sum=sum+5;
if(previous<5)
sum=sum-2*previous;
previous=5;
break;
case 'I':
sum=sum+1;
previous=1;
}
}
decimalNum=sum;
return decimalNum;
document.getElementById("demo").innerHTML=decimalNum+" is the answer.";
</script>
</body>
</html>
JavaScript罗马到十进制转换器(1-10)
转换
函数myFunction(){
var总和=0;
var len=romanum.length();
var i;
var=10;
for(i=0;i是最简单的解决方案,而不是复杂的switch语句
var decimal=[100050010050,10,5,1];
var roman=[“M”、“D”、“C”、“L”、“X”、“V”、“I”];
函数myFunction(){
var str=document.getElementById(“罗马”).value;
var结果=0;
var decimal=[1000900500400100,90,50,40,10,9,5,4,1];
var roman=[“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”];
对于(var i=0;i而言,这是最简单的解决方案,而不是复杂的switch语句
var decimal=[100050010050,10,5,1];
var roman=[“M”、“D”、“C”、“L”、“X”、“V”、“I”];
函数myFunction(){
var str=document.getElementById(“罗马”).value;
var结果=0;
var decimal=[1000900500400100,90,50,40,10,9,5,4,1];
var roman=[“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”];
对于(var i=0;i这里我创建了一个简短的演示,请检查我留下的评论
JavaScript罗马到十进制转换器(1-10)
转换
函数myFunction(){
var总和=0;
//您忘了获取romanNum值
var romanum=document.getElementById(“roman”).value;
//String.length是一个属性而不是一个方法
var len=romanum.length;
var i;
var=10;
对于(i=0;i这里我创建了一个简短的演示,请检查我留下的评论
JavaScript罗马到十进制转换器(1-10)
转换
函数myFunction(){
var总和=0;
//您忘了获取romanNum值
var romanum=document.getElementById(“roman”).value;
//String.length是一个属性而不是一个方法
var len=romanum.length;
var i;
var=10;
对于(i=0;i您是否在控制台中看到任何错误?另外,您有一个
,但没有
,您的javascript格式不正确,什么是romanNum
?-在您开始更正代码之前,这有太多问题,其中有几个错误和问题。您正在使用'romanNum.length()'但是您还没有导入任何与此对象相关的脚本或插件。您在控制台中看到任何错误吗?此外,您有一个
,但没有
,您的javascript格式不正确,什么是romanNum
?-在您开始更正代码之前,这有太多问题,其中有几个错误和问题。您是使用“romanNum.length()”,但尚未导入任何与此对象相关的脚本或插件
<!doctype html>
<html>
<body>
<h2>JavaScript Roman to Decimal Converter(1-10)</h2>
<p id="demo"></p>
<input id="roman" value=""/>
<button onclick="myFunction()">Convert</button>
</form>
<script>
function myFunction(){
var sum=0;
// you forgot to get romanNum value
var romanNum = document.getElementById("roman").value;
// String.length is an property not a method
var len=romanNum.length;
var i;
var previous=10;
for (i=0; i<len; i++)
{
switch (romanNum.charAt(i))
{
case 'X':
sum=sum+10;
if(previous<10)
sum=sum-2*previous;
previous=10;
break;
case 'V':
sum=sum+5;
if(previous<5)
sum=sum-2*previous;
previous=5;
break;
case 'I':
sum=sum+1;
previous=1;
}
}
decimalNum=sum;
// no one experession will be executed, if it placed after return
document.getElementById("demo").innerHTML=decimalNum+" is the answer.";
return decimalNum;
// also, you forgot to close the function
}
</script>
</body>
</html>