如何在循环中单行打印?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在循环中单行打印?相关的知识,希望对你有一定的参考价值。

假设我有一个包含以下循环的Fortran程序:

do i=1, 10
  print *, i
enddo

这个的输出就像

1
2
...
10

如何将这些值写入一行,如下所示?

1 2 ... 10
答案

有很多方法,立即浮现在脑海中的两个方法显示在下面的小程序中

$ cat loop.f90
Program loop
  Implicit None
  Integer :: i
  Write( *, * ) 'First way - non-advancing I/O'
  Do i = 1, 10
     Write( *, '( i0, 1x )', Advance = 'No' ) i
  End Do
  Write( *, * ) ! Finish record
  Write( *, * ) 'Second way - implied do loop'
  Write( *, * ) ( i, i = 1, 10 )
End Program loop
$ gfortran -std=f2003 -Wall -Wextra -fcheck=all loop.f90 
$ ./a.out
 First way - non-advancing I/O
1 2 3 4 5 6 7 8 9 10 
 Second way - implied do loop
           1           2           3           4           5           6           7           8           9          10
$ 

第一种方法。非推进I / O,抑制正在写入的记录标记的结束,这通常是新行,但确实需要显式格式。第二个隐含的do循环不需要格式,但灵活性较差。

BTW英文通常称为“循环”

以上是关于如何在循环中单行打印?的主要内容,如果未能解决你的问题,请参考以下文章

单行命令循环打印输出脚本

单行命令循环打印输出脚本

在文件中打印单行的最快方法

在单行代码中使用 *(扩展运算符)打印列表列表

JavaScript单行代码,也就是代码片段

如果在for循环中为else,如何在单行中使用“继续”