질문 드립니다.
200
投稿した質問数 4
안녕하세요, 강의 듣다가 저 혼자 도움 없이 코드를 작성해보았는데 작동은 잘 되고 오류도 없다고는 뜨는데 한번 봐주실 수 있을까요?
저는 main 함수에 최대한의 변수를 선언하려고 했어요. 근데 각 함수마다 변수를 안데려온 것도 있는데 (calculate 함수를 예로 들면 result, num2만 다시 선언하고 op를 다시 선언 안해줬어요. 뭔가 op는 이미 getOperator 함수에서 (일시적으로) 고정된 변수 느낌이라 다른 함수에서 불러올 때 선언 안해줬거든요. 전부 다 선언해주는게 맞나요? 작동은 잘 돼서 헷갈리네요
강의 항상 잘 듣고 있습니다 ~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>내가 만든 함수를 이용한 사칙연산 구현</h1>
<div id="out">결과값과 식은 여기에</div>
<script>
//첫 번째 변수 선언
function getFirstValue() {
num1 = Number(prompt("1번 째 숫자를 입력해주세요."));
return num1;
};
//연산자 선언
function getOperator() {
op = prompt("연산자를 입력해주세요.");
return op;
}
//n 번째 변수 선언
function getSecondValue(num2, n) {
num2 = Number(prompt(n + "번 째 숫자를 입력해주세요."));
return num2;
}
// 계산
function calculate(result, num2) {
if (op === "+") {
result += num2;
} else if (op === "-") {
result -= num2;
} else if (op === "*") {
result *= num2;
} else if (op === "/") {
result /= num2;
} else {
result = "연산자 오류";
}
return result;
}
// 출력
function print(eq, result) {
output = document.getElementById("out");
return out.innerHTML = "<h3>입력한 식 : " + eq + "<br> 계산 결과 : " + result + "</h3>";
}
// 메인함수
function main() {
var num1 = getFirstValue();
var result = num1;
var n = 2;
var str = "";
str = num1;
var eq;
while(true) {
var op = getOperator();
if (op === "q") { break; }
var num2 = getSecondValue(num2, n);
str += op + num2;
eq = str;
result = calculate(result, num2);
n++
}
var output = print(eq, result);
}
main();
</script>
</body>
</html>
回答 1
0
안녕하세요? 답변이 늦어서 죄송합니다.
일단은 정상적으로 동작하면 큰 문제가 되지 않는데요. 이후에 차차 더 좋은 코드를 짜는 방법을 학습하시면 됩니다.
그리고 가능하면 op도 매개변수로 사용해 주는 것이 좋습니다. 나중에 배우겠지만, 전역변수를 사용하면 유지보수에 좋지 않기때문에 가능하면 지역변수, 매개변수를 적절하게 사용하는 것을 권합니다.
push 도중 "오류가 나면서 완료됨." 문제 해결
0
269
0
세 번째 프로그램 관련 질문입니다
0
253
0
submit때마다 print된 구구단을 지우고 싶어요..
0
361
1
this 질문
0
215
0
질문드립니다!
0
246
0
동영상 권한 문제
0
396
2
뒤집는 기능, 일치 여부 기능 구현해봤습니다 .
1
244
1
코드 어디서 확인할수있나요..???
1
240
1
소스트리 자꾸 꺼지는 현상
0
286
1
질문 드립니다.
0
275
2
질문 드립니다.
1
187
1
줄바꿈
1
257
1
else 생략
0
797
1
지금까지 들었는데
0
269
3
질문있습니다! var과 let
0
197
1
질문 있습니다!
1
231
1
안녕하세요 선생님, 질문있습니다.
1
186
1
let이 재선언이 됩니다! 그리고 참고 링크가 사라진듯 해요.
1
237
1
예제1번 질문있습니다.
1
243
3
숫자로 변환할때 변수을 새로 만들어 줄 필요가 있는지 궁금해요 !!
0
225
2
javascript 강의 시작합니다 !!
0
179
0
'변수 이름 잘 짓기'가 코딩 3대 난제라면 나머지 두 개는 뭘까요??(내용무)
1
449
1
라이브 코딩 보는곳좀요!
0
396
3
Push 에서 github 오류가 뜨는데요
0
206
1

