将int函数传递给Java中的while循环

时间:2018-09-30 04:43:28

标签: java c++11 while-loop

我正在解决传教士和食人族这三个问题。在实现时,它在c ++和python中工作正常,但是在用Java实现时,在while循环中给出了错误。 C ++中的代码如下:

import os
import datetime
import platform
import subprocess

date = datetime.datetime.now()
day = date.day
hour = date.hour

os.chdir ('Path')
openips = open ("ips.txt","r")
ipfile = openips.readlines()
print (ipfile)

for ips in ipfile():
    ips = ips.strip()
    print (ips)
    args = ["ping", "-n", "4", "-l", "1", "-w", "1000", ips]
    pping = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
    for line in pping.stdout:
        print (line)
    os.chdir ('Path')
    presult = open ("pingresults_{}_{}.txt".format(day,hour), 'a')
    presult.write ('{}_{}\n'.format(ips, line))
    presult.close ()

我不知道我要去哪里错了。任何用相同输出(java)或更正的代码替换都值得赞赏。

代码输出应为:

part 1 of the image part 2 of the image

1 个答案:

答案 0 :(得分:2)

如果我正确理解的话,在Java中,boolean是与Number类型不同的类型(例如int,float,double,char等)。在booleanNumber类型之间没有隐式显式类型转换,因此您不能写类似while (win())或{{ 1}},因为返回类型if(win())是一个整数,而win()需要一个while!唯一的方法是在boolean函数中返回false和true。

win