我从课堂上的方法开始,进展并不顺利(循环也有一些问题,但那是另一个故事了)。我试图做一个要求数字的练习,直到我引入一个负数。我创建了程序,但计数器不工作,我不知道为什么,我确信这是一个愚蠢的问题,但我看不到它在哪里。有人可以帮我吗?预先感谢: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;
}
}
我现在正在尝试将早期的练习分成方法。程序应该要求我输入数字,直到我引入一个负数,然后它应该显示我引入了多少正数。
while(num >= 0){
cont++;
}
这是无限循环。您应该将其替换为
if
。
您的计数器没有计数。直到您将其移至
do-while
循环。
用于计数数字的变量不应该是方法的局部变量,否则每次调用方法时它都将始终为 0,但您需要在每个输入的数字的循环中调用它。