以下代码。
我想输入一些数字,测试每一个数字以查看它是否低于10,打印出总数低于10并打印出每个数字。
如何从循环中提取数字并在循环结束时打印它?
如果我输入4,2,11,12
并完成循环,如何打印出4
和2
?
不使用数组。我是编程的新手,还没有到达阵列。
谢谢
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);
}
}
答案 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);
}
有关编码风格的说明:请勿将boolean
与true
或false
进行比较。
另一个注意事项:可以返回布尔表达式的结果而不将它们分配给变量或if
语句。这整段代码
boolean returnValue;
returnValue = false;
if(num >= 0 && num < 10)
{
returnValue = true;
}
return returnValue;
相当于
return num >= 0 && num < 10;