我的代码如下。我希望它会吐出类似以下内容:
SN = 12345678 EX = 73 CW = 73马克= 73.0
SN = 87654321 EX = 50 CW = 70马克= 60.0
但我得到:
。
。
。
SN = 12345678 EX = 73 CW = 73马克= 73.0
。
。
SN = 87654321 EX = 50 CW = 70马克= 60.0
(带有额外的换行符(以句点表示))
我真的无法弄清楚这些来源。
请指出正确的方向!
class Main
{
public static void main( String args[] )
{
int sN = 1;
int cwMark;
int exMark;
double Mark;
while ( sN != 0 )
{
sN = CIO.getInt();
cwMark = CIO.getInt();
exMark = CIO.getInt();
Mark = ((double)(exMark + cwMark)/2);
System.out.print("SN=");
System.out.print( (int) sN );
System.out.print(" EX= ");
System.out.print( (int) exMark );
System.out.print(" CW= ");
System.out.print( (int) cwMark );
System.out.print(" Mark = ");
System.out.print(Mark);
}
}
}
getInt定义为:
public static int getInt()
{
String res = getLine();
int value = 0;
try
{
value = Integer.parseInt( res.trim() );
}
catch ( NumberFormatException ex )
{
}
return value;
}
最佳答案
我不确定CIO
是什么。您到底从哪里得到输入的?我可以推断出您是从控制台获取整数的,这将解释您所看到的内容:您从控制台获取输入,并打印到同一控制台。要输入整数,必须有人在某处打一个换行符,并且该换行符会回显到控制台。
我可能正在吸烟,但是我认为这与CIO
的定义有关。
编辑:当您确认CIO与控制台进行交互时,现在很清楚。调用getInt
时,最终将解析输入(换行符除外)。由于定义了控制台以回显它所获得的每个击键,因此必须在某处输出换行符(既用作输入定界符又用作换行符/换行符)……这就是为什么您在自己的键盘上看到换行符的原因输出。
例如,如果在该位置添加另一个getInt
,则会在输出中看到4个换行符,而不是3个。
关于java - Java未按预期输出到终端(出现新行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12706642/