当用户按Y或Y时应该停止该程序,但是测试测试条件对代码没有影响,程序不断询问用户下一个数字。为什么测试条件没有影响
#include<iostream.h>
#include<conio.h>
#include<math.h>
int prime(int);
void main(void)
{
int n;
char ch='i';
mylabel:
cout << "\nEnter num: ";
cin >> n;
cout << prime(n);
cout << "\nPress N or n to exit : ";
if (getche() != ('N' || 'n')) {
goto mylabel;
}
cout << ",,,";
}
int prime(int p)
{
int test = 1;
if((p>2 && p%2==0) || p==0 || p==1 || p<0)
return 0;
for (int i=3 ; i<=(int(sqrt(p)))+1 ;i+=2)
{
if(p%i==0)
test=0;
break;
}
return test;
}
为什么downvote? – Illaz 2015-03-13 13:46:30
因为这是一个愚蠢的问题,未来不会帮助任何人。你在哪里读到'if(getche()!=('N'||'n'))'是合并条件的正确方法?当然不是你的C++书。 – 2015-03-13 13:47:49
@LightnessRacesinOrbit什么是正确的方法? – Illaz 2015-03-13 13:49:32