计算低于10的数字并打印每一个

时间:2014-02-13 15:47:56

标签: java loops methods

以下代码。

我想输入一些数字,测试每一个数字以查看它是否低于10,打印出总数低于10并打印出每个数字。

如何从循环中提取数字并在循环结束时打印它?

如果我输入4,2,11,12并完成循环,如何打印出42

不使用数组。我是编程的新手,还没有到达阵列。

谢谢

class Numbers
{
    public static boolean isNum(int num)
    {
        boolean returnValue;

        returnValue = false;

        if(num >= 0 && num < 10)
        {
            returnValue = true;
        }
        return returnValue;
    }

    public static void main (String [] args)
    {   
        int input; //numbers entered by user
        int numCount = 0; //numbers less than 10
        int index;
        boolean result;

        System.out.print("How many numbers to test? ");
        input = EasyIn.getInt();
        result = isNum(input);

        for(index = 0; index <= input; index++ )
        {
            System.out.println("Enter a number ");
            input = EasyIn.getInt();
            if(result == true)
            {
                numCount++;
            }
        }

        System.out.println("Total numbers below 10 is " + numCount);    

    }
}

2 个答案:

答案 0 :(得分:4)

如果您绝对 等待循环结束以打印出您的号码,并且无法使用数组,您可以随时创建一个字符串并继续附加有效数字(也许逗号分隔)。然后在循环完成后打印出这个String。

例如:

String output = "";
for (index = 0; index <= input; index++)
    input = EasyIn.getInt();
    result = isNum(input);

    if(result == true)
    {
        numCount++;
        output += input.ToString() + ", "; // you will probably want to remove the last comma
    }
}

output = output.replaceAll(", $", ""); // remove last comma
System.out.println("Total numbers below 10 is " + numCount); 
System.out.println("The numbers below 10: " + output)

答案 1 :(得分:1)

由于你不能使用数组,并且假设其他集合也是不可能的,你唯一的选择就是在你得到数字时打印10以下的数字。您还需要更改代码以在每个输入的循环内调用result = isNum(input);,而不仅仅是您获得的第一个数字:

input = EasyIn.getInt();
result = isNum(input);
if(result) // == true is implied
{
    numCount++;
    System.out.println("Number under ten: "+input);
}

有关编码风格的说明:请勿将booleantruefalse进行比较。 另一个注意事项:可以返回布尔表达式的结果而不将它们分配给变量或if语句。这整段代码

boolean returnValue;
returnValue = false;
if(num >= 0 && num < 10)
{
    returnValue = true;
}
return returnValue;

相当于

return num >= 0 && num < 10;