Java未按预期输出到终端(出现新行)
下面是我的代码。我希望它能吐出这样的东西: SN=12345678 EX=73 CW=73 Mark=73.0 SN=87654321 EX=50 CW=70 Mark=60.0 但我得到了: SN=12345678 EX=73 CW=73 Mark=73.0 SN=87654321 EX=50 CW=70 Mark=60.0 (有大量额外换行符(以句点显示)) 我真的不知道这些是从哪里来的 请给我指出正确的方向Java未按预期输出到终端(出现新行),java,bluej,Java,Bluej,下面是我的代码。我希望它能吐出这样的东西: SN=12345678 EX=73 CW=73 Mark=73.0 SN=87654321 EX=50 CW=70 Mark=60.0 但我得到了: SN=12345678 EX=73 CW=73 Mark=73.0 SN=87654321 EX=50 CW=70 Mark=60.0 (有大量额外换行符(以句点显示)) 我真的不知道这些是从哪里来的 请给我指出正确的方向 class Main { public static void
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;
}
您发布的代码根本不会生成任何新行(即使在不同的值集之间也不会)。你是如何运行代码的?您确定您发布的代码与正在执行的代码版本相同吗 还有几点:
- 您不需要将
、sN
和exMark
强制转换为int,它们已经声明为intcwMark
- 您应该将
变量的名称更改为Mark
——以大写字母开头的名称通常仅用于类和接口Mark
- 您不需要将
、sN
和exMark
强制转换为int,它们已经声明为intcwMark
- 您应该将
变量的名称更改为Mark
——以大写字母开头的名称通常仅用于类和接口Mark
- 不确定首席信息官是什么(一些标准?),但它有责任:
sN = CIO.getInt();
cwMark = CIO.getInt();
exMark = CIO.getInt();
不确定首席信息官是什么(一些标准?),但它有责任:
sN = CIO.getInt();
cwMark = CIO.getInt();
exMark = CIO.getInt();
我不确定什么是
CIO
。你到底是从哪里得到信息的?我可以从理论上推断,您是从控制台获取整数,这可以解释您所看到的情况:您从控制台获取输入,然后打印到同一控制台。要输入一个整数,必须有人在某个地方输入一个换行符,并且该换行符将被回显到控制台
我可能在抽烟,但我认为这与CIO
的定义有关
编辑:当您确认CIO与控制台进行交互时,这一点现在很清楚了。当您调用getInt
时,您将解析除换行符以外的输入。由于控制台被定义为回显它获得的每个击键,因此换行符(同时用作输入分隔符和换行符/换行符)必须输出到某个地方。。。这就是为什么在输出中会看到换行符
例如,如果在那里的某个地方添加另一个
getInt
,则输出中将看到4个换行符,而不是3个。我不确定什么是CIO
。你到底是从哪里得到信息的?我可以从理论上推断,您是从控制台获取整数,这可以解释您所看到的情况:您从控制台获取输入,然后打印到同一控制台。要输入一个整数,必须有人在某个地方输入一个换行符,并且该换行符将被回显到控制台
我可能在抽烟,但我认为这与CIO
的定义有关
编辑:当您确认CIO与控制台进行交互时,这一点现在很清楚了。当您调用getInt
时,您将解析除换行符以外的输入。由于控制台被定义为回显它获得的每个击键,因此换行符(同时用作输入分隔符和换行符/换行符)必须输出到某个地方。。。这就是为什么在输出中会看到换行符
例如,如果在那里的某个地方添加另一个
getInt
,则输出中将看到4个换行符,而不是3个。显示的代码中甚至没有换行符。缺少一些重要的代码。什么是CIO
?它是如何定义的?问题可能在getInt方法中,或者(不太可能)在另一个线程中。谢谢,我不想这样做,我只是想知道是否有人能从我的代码中发现为什么会显示这些换行符。这就是我所有的代码。CIO是一个允许从控制台输入的导入类。在显示的代码中甚至没有换行符。缺少一些重要的代码。什么是CIO
?它是如何定义的?问题可能在getInt方法中,或者(不太可能)在另一个线程中。谢谢,我不想这样做,我只是想知道是否有人能从我的代码中发现为什么会显示这些换行符。这就是我所有的代码。CIO是一个导入的类,允许从控制台输入。请使用“添加注释”按钮。同意,这不是真正的答案,但仍然不需要进行否决表决,因为很明显输出不是来自发布的代码。是的,这肯定是我发布的代码的输出。如果我把最后一行改为println,我会得到第三个换行符。它是stin-这是在创建一个新行。大学评分系统在检查时会忽略“#”,所以我在getInt请求行上打印了其中一个。我现在已经通过了这门功课!请使用“添加评论”按钮。同意,这不是一个真实的答案,但仍然不需要否决,因为很明显,输出不是来自发布的代码。是的,这肯定是我发布的代码的输出。如果我把最后一行改为println,我会得到第三个换行符。它是stin-这是在创建一个新行。大学评分系统在检查时会忽略“#”,所以我在getInt请求行上打印了其中一个。我现在已经通过了这门功课!在我看来,这就像是大学代码。他认为问题出在wh部分