###発生している問題・エラーメッセージ
47行目に組んでいる"break loop;"が"Label Not Found"になります。その遷移先のloop:は、43行目にあります。
###該当のソースコード
JavaScript
1<!DOCTYPE HTML> 2<html> 3 4<head> 5 <title>万能電卓</title> 6 <script> 7 /*順番方式*/ 8 function keisan() { //a 9 /*try{*/ 10 var chk1 = 0 11 var str = document.siki.mainsiki.value; 12 var strlong = str.length; 13 for (var cnt = 0; cnt < 10; cnt++) { //b 14 if (str.indexOf(cnt, 0) != 0) { //c 15 chk1++ 16 } //c 17 } //b 18 if (chk1 > 9) { //d 19 alert("最初の文字は数字にしてください"); 20 return; 21 } //d 22 var siki = str; 23 var sikilong = siki.length; //0-x + 1 24 var sisoku = new Array(); 25 sisoku[0] = '+'; 26 sisoku[1] = '-'; 27 sisoku[2] = '*'; 28 sisoku[3] = '/'; 29 var sisokunum = 0; 30 var sisokunochk = 0; 31 for (var cntstrnum = 0; cntstrnum < sikilong; cntstrnum++) { //e 32 var chk = siki.charAt(cntstrnum); 33 for (var cnta = 0; cnta < 4; cnta++) { //f 34 if (chk == sisoku[cnta]) { //g 35 sisokunum = sisokunum + 1; 36 } //g 37 } //f 38 } //e 39 if (sisokunum == 0) { //h 40 alert("答え:" + siki); 41 return; 42 } //h 43 loop: 44 var sikip = ""; 45 for (var cntmain = 0; cntmain < 1; cntmain++) { //i////gotoの代わり 46 subloop: if (sisokunochk != 0) { 47 break loop; 48 } 49 for (var cntb = 0; cntb < sikilong; cntb++) { //j 50 var counter = 0; 51 var countertwo = 0; 52 var sikipa = ""; 53 var sikipb = ""; 54 var sikisisoku = ""; 55 var sikiright = ""; 56 for (var cntz = 0; cntz < 4; cntz++) { //k 57 if (sisoku[cntz] == siki.charAt(cntb)) { //l 58 counter = 1; 59 } //l 60 } //k 61 if (counter == 0) { //m 62 sikip = sikip + siki.charAt(cntb); //sikipはsikiの計算する部分の記録用 63 if (cntb == sikilong - 1) { //n 64 sikipb = sikip; 65 } //n 66 } else if (counter == 1) { //m 67 for (var cnty = 2; cnty < 4; cnty++) { //o 68 if (sisoku[cnty] == siki.charAt(cntb)) { //p 69 if (sikipa == "") { //q 70 sikipa = sikip; 71 sikip = ""; 72 } else { //q 73 sikipb = sikip; 74 sikiright = siki.substr(cntb + 1, sikilong - 1); //怪しい 75 } //q 76 sikisisoku = siki.charAt(cntb); 77 break; 78 } //p 79 } //o 80 } //m 81 for (var cntx = 0; cntx < 2; cntx++) { //r 82 if (sisoku[cntx] == siki.charAt(cntb) && twosisoku == 0) { //s//twosisokuは*/の数 83 sikipa = sikip 84 sikip = ""; 85 sikisisoku = siki.charAt(cntb); 86 } else if (sisoku[cntx] == siki.charAt(cntb) && twosisoku > 0) { //s 87 sikip = ""; 88 } //s 89 } //r 90 91 if (sikisisoku != "" && sikipa != "" && sikipb != "") { //s 92 if (sikisisoku == sisoku[0]) { //t 93 sikileft = sikipa + sikipb; 94 siki = sikileft.toString() + sikiright.toString(); //以下共通 95 } else if (sikisisoku == sisoku[1]) { //t 96 sikileft = sikipa - sikipb; 97 siki = sikileft.toString() + sikiright.toString(); 98 } else if (sikisisoku == sisoku[2]) { //t 99 sikileft = sikipa * sikipb; 100 siki = sikileft.toString() + sikiright.toString(); 101 } else if (sikisisoku == sisoku[3]) { //t 102 sikileft = sikipa / sikipb; 103 siki = sikileft.toString() + sikiright.toString(); 104 } //t 105 } //s 106 sikilong = siki.length; //計算後を想定した記述 107 sisokunochk = 0; 108 for (var cntc = 0; cntc < sikilong; cntc++) { //t 109 var chka = siki.charAt(cntc); 110 for (var cntd = 0; cntd < 4; cntd++) { //u 111 if (chka == sisoku[cntd]) { //v 112 sisokunochk = sisokunochk + 1; 113 } //v 114 } //u 115 } //t 116 if (sisokunochk == 0) { //w 117 break; //もう四則演算子がない 118 } //w 119 if (sisokunochk != 0) { //x 120 break subloop; //まだ四則演算子がある 121 } //x 122 } //j 123 alert("答え:" + siki); 124 return; 125 } //i 126 127 /*}catch(e){ 128 alert("式が不適合もしくはエラーです。"); 129 return; 130 } 131 finally{ 132 return; 133 }*/ 134 } //a 135 </script> 136</head> 137 138<body> 139 <form name="siki"> 140 式:<input type="text" name="mainsiki" value=""> 141 <br> 142 <input type="button" value="計算" onclick="keisan()"> 143 </form> 144 145</body> 146 147</html>
###試したこと
きれいに整形し、{}の過不足を気づく範囲で揃えました。
###補足情報(言語/FW/ツール等のバージョンなど)
なし
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/06 09:34