启动方法并与此斗争

问题描述 投票:0回答:1

我从课堂上的方法开始,进展并不顺利(循环也有一些问题,但那是另一个故事了)。我试图做一个要求数字的练习,直到我引入一个负数。我创建了程序,但计数器不工作,我不知道为什么,我确信这是一个愚蠢的问题,但我看不到它在哪里。有人可以帮我吗?预先感谢:3

import java.util.Scanner;

/**
 *
 * @author xxx
 */
public class Ej08Metodos {

    
    public static void main(String[] args) {
        int n, contador = 0;
        n = pedirNum();
        contador = contar(n);
        System.out.println("Se han introducido "+contador+" números positivos");
        
    }
    
     public static int pedirNum(){
        Scanner sc = new Scanner(System.in);
        int n;
        do{
            System.out.println("Introduce un número");
            n = sc.nextInt();
            if(n < 0){
                System.out.println("Has introducido un número negativo");
            }
            
            
            
        }while(n >= 0);
            
    
        return n;
     }
     
     public static int contar(int num){
         int cont = 0;
         while(num >= 0){
             cont++;
         }
         return cont;
     }
}

我现在正在尝试将早期的练习分成方法。程序应该要求我输入数字,直到我引入一个负数,然后它应该显示我引入了多少正数。

java loops methods
1个回答
0
投票
while(num >= 0){
             cont++;
         }

这是无限循环。您应该将其替换为

if

您的计数器没有计数。直到您将其移至

do-while
循环。

用于计数数字的变量不应该是方法的局部变量,否则每次调用方法时它都将始终为 0,但您需要在每个输入的数字的循环中调用它。

© www.soinside.com 2019 - 2024. All rights reserved.