2 개의 값과 연산자를 허용하는 간단한 "계산기"예제를 내 교과서에서 복사했습니다. 그러나 입력 된 표현식이 유효한지 여부는 확인하지 않습니다. 코드는 적절한 표현식이 입력 될 때까지 사용자에게 프롬프트해야합니다.Do ... 논리 연산자가있는 루프 while 문
내 스타일을 염두에두고 어떻게 수정해야합니까? 이 일을하는 더 좋은 방법은 무엇입니까?
/*
Input: A simple expression with 2 values and 1 operator
Format: value1 (operator) value2
Ex: 5*5
Output: Answer
*/
#include <stdio.h>
int main (void)
{
float value1, value2;
char operator = ' ';
//Issue Area, the while section does not work
do
{
printf ("Type in your expression:");
scanf ("%f %c %f", &value1, &operator, &value2);
}
while ((operator != '+' || operator != '-' || operator != '*' || operator != '/'));
//This is fine, code is for an else...if example in textbook
if (operator == '+')
printf ("%.2f\n",value1 + value2);
else if (operator == '-')
printf ("%.2f\n",value1 - value2);
else if (operator == '*')
printf ("%.2f\n",value1 * value2);
else if (operator == '/')
printf ("%.2f\n",value1/value2);
return 0;
}
질문 디버깅 도움말 ("왜 이것이 아닌가요? 코드 작동? ")에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. See : 최소한의 완전하고 검증 가능한 예제를 만드는 방법. 1 – Olaf
'||'이 아니라'&&'가 필요합니다. 그렇지 않으면 논리적 표현이 항상 성공합니다. '! (연산자 =='+ '| 연산자 =='- '연산자 =='* '연산자 연산자 =='/ ')' – lurker
루프 몸체를 읽고 크게 소리내어 읽습니다. '||'을 "or"로 말합니다. – Olaf