안녕하세요?
1. 아래와 같이 수정하면 잘 동작합니다.
2. 아래
... 생략
op = (char)Console.Read(); // while문 안에서 x ->op->y 순으로 받아들여야 합니다.
while(true){
x = Console.Read();
op = (char)Console.Read(); // 윗 줄에서 안으로 코드를 옮겼습니다.
y = Console.Read();
// x를 판별 합니다.
if(x >= '0' & x <= '9')
{
x = x - '0';
p1 = p1 * 10 + x;
}
// y를 판별합니다. ( elseif -> if로 대체 )
else if (y >= '0' & y <= '9')
if (y >= '0' & y <= '9') // if를 분리하여, x,y 각각 변수를 받습니다.
{
y = y - '0';
p2 = p2 * 10 + y;
break; // while문 해제에 따라 break 불필요.
}
else// op는 위에서 받았으므로 불필요합니다.
{
op = (char)x; // 연산자 저장
}}
... 생략
//***********************************************************************
// 정리된 전체 코드
//***********************************************************************
x = Console.Read();
op = (char)Console.Read();
y = Console.Read();
if(x >= '0' & x <= '9')
{
x = x - '0';
p1 = p1 * 10 + x;
}
if (y >= '0' & y <= '9')
{
y = y - '0';
p2 = p2 * 10 + y;
}
switch (op)
{
case '+': result = p1 + p2; Console.WriteLine(x + " + " + y + " = " + result);
break;
case '-': result = p1 - p2; Console.WriteLine(x + " - " + y + " = " + result);
break;
case '*': result = p1 * p2; Console.WriteLine(x + " * " + y + " = " + result);
break;
case '/': result = p1 / p2; Console.WriteLine(x + " / " + y + " = " + result);
break;
}
}
}
3. 기존 코드의 문제점
-. 콘솔입력 인식 순서 잘못. op를 while문 안으로 이동해야함. x -> op -> y순으로
-. if~elseif~else 블럭의 논리 오류. x, y변수가 각각 판별되어야 하는데, x만 판별됨.
그리고는, 또 입력을 전부 받음. 따라서, if x~, if y~로 각각 판별하게 변경함.
-. op입력이 while문 안으로 들어옴으로써, else 블럭은 불필요.
-. 위의 기능에서는 while문 불필요. 따라서, while문 해제하고, if y~ 부분 break; 해제.
도움이 되시길 바랍니다.
감사합니다.
written by
legend
C과외/C#과외/VB과외 프로그래밍 과외.서울인천경기-방문강의.기타전국-화상강의.제대로 체계적으로 배우고싶은분들.15년경력 프리랜서.삼성/포스코/한진 등.
서울,인천,경기,분당,일산,과천,산본,부천,부평,평촌,안산,안양,광명,용인,시흥,성남,수원,평택,오산,화성,동탄,천안,아산,
c#프로그래밍1:1과외, 15년 이상 프로젝트 경력의 프리랜서 직접 강의,
c#프로그래밍 과외, c#프로그래밍교육, IT·컴퓨터·컴퓨터과외비·프로그래밍과외, c# 강좌, c# 프로그래밍,
데이터베이스, 데이터베이스 프로그래밍, db, DB, 과외비,컴퓨터1:1,컴퓨터개인지도,컴퓨터실무과외,컴퓨터과외,컴퓨터1:1과외,
서울,인천,경기,부천,안산,분당,일산,천안,과천,산본,안양,광명,평촌,수원,평택,오산,용인,부평,시흥,성남,화성,동탄
광주,부산,대구,대전,마산,창원,울산,전주,군산,원주,강릉,충청남도,충청북도,강원도,경상남도,경상북도,전라남도,전라북도,제주도
'좋은질문' 카테고리의 다른 글
C# 속성(property)과 생성자에 관한 질문이에요. (0) | 2014.09.26 |
---|---|
VB6 비주얼베이직 도와주세요 (0) | 2014.09.24 |
C언어 32비트 이상 숫자 연산 질문 !! (0) | 2014.09.23 |
VB6 비주얼베이직 텍스트 상자 입력 커멘드 (0) | 2014.09.22 |
C언어 자료구조 구조체 문제입니다. (0) | 2014.09.22 |