所以,我有这个代码,最后我有一个退出的增量,当它达到4(输入错误值的4倍),但它不起作用:
int main() {
int nej;
printf("1-Triangulo \n");
printf("2-Division \n");
printf("3-Menu \n");
printf("4-Bosque \n");
printf("0-Salir \n");
scanf("%d", &nej);
if (nej == 1) {
// Ejercicio 1-Triangulo:
triangulo();
}
if (nej == 2) {
// Ejercicio 2-Division:
division();
}
if (nej == 3) {
menu();
}
if (nej == 4) {
arboles();
}
if (nej == 0) {
// Salida
exit(1);
}
int nerr = 0;
while (nej < 0 || nej > 4) {
nerr++;
// Contador de error
if (nerr == 4) {
exit(1);
}
}
}
如何解决此问题?
答案 0 :(得分:0)
我相信你在while条件下有一个拼写错误
while (nej < 0 || nej > 4) {
...
应该是:
while (nerr < 0 || nerr > 4) {
..
答案 1 :(得分:0)
如果您每次阅读时都初始化int nerr = 0;
,则流量永远不会达到退出条件
int main()
{
int nej;
int nerr = 0; // Keep the counter outside the loop
while (true){//Start a infinite loop here
printf("1-Triangulo \n");
printf("2-Division \n");
printf("3-Menu \n");
printf("4-Bosque \n");
printf("0-Salir \n");
scanf("%d", &nej);
if (nej == 1) {
// Ejercicio 1-Triangulo:
triangulo();
}
if (nej == 2) {
// Ejercicio 2-Division:
division();
}
if (nej == 3) {
menu();
}
if (nej == 4) {
arboles();
}
if (nej == 0) {
// Salida
exit(1);
}
while (nej < 0 || nej > 4) {
nerr++;
// Contador de error
if (nerr == 4) {
exit(1);
}
}
}
答案 2 :(得分:0)
nej
作为输入,如果输入小于0或大于4,则输入无效,正确的语句为:
if (nej < 0 || nej > 4) {
(而不是while
,nej
代码块中未更改private function checkIfExsistOffer($offerUrl)
{
$res = $this->getDoctrine()->getRepository('FactoryMainBundle:Offers')
->createQueryBuilder('o')
->select('o.id')
->where("o.id=:offer")
->setParameter('offer', 1)
->getQuery()
->getSingleResult(); //return single result
var_dump($res);die; //test
}
。
答案 3 :(得分:0)
它有以下错误:
while
循环nerr
并在while
循环nerr
应控制while
循环 注意:使用多个if
即可。但使用switch
非常方便和可取。
更正后的代码如下:
int main() {
int nej;
int nerr = 0;
while (nerr < 4) {
printf("1-Triangulo \n");
printf("2-Division \n");
printf("3-Menu \n");
printf("4-Bosque \n");
printf("0-Salir \n");
scanf("%d", &nej);
switch(nej){
case 1:// Ejercicio 1-Triangulo:
triangulo();
break;
case 2:// Ejercicio 2-Division:
division();
break;
case 3:
menu();
break;
case 4:
arboles();
break;
case 0:// Salida
exit(1);
break;
default:
nerr++;
}
// Reset 'nerr' if any valid vaue is entered by user
if ((nej >= 0) && (nej <= 4)) {
nerr = 0;
}
}
}