'if'语句中的'break'

时间:2014-01-29 13:14:38

标签: python for-loop if-statement break

我正在Codeacademy.com上学习Python课程。我对编程完全不熟悉。我们正在设计游戏“Battleship”的小版本,论坛中的每个人似乎都被困在同一部分。它要求您在'if'语句中插入break语句。经过几天检查我的缩进和代码后,我在你的页面中找到了这个答案:

Python: 'break' outside loop

所以,这是我的代码:

for turn in range(4):
    print turn+1
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))

if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sunk my battleship!"


if (guess_row < 0 or guess_row > 5) or (guess_col < 0 or guess_col > 5):
    print "Oops, that's not even in the ocean."

elif(board[guess_row][guess_col] == "X"):
    print "You guessed that one already."

else:
    print "You missed my battleship!"
    board[guess_row][guess_col] = "X"
    # Print (turn + 1) here!

    print print_board(board)
    if turn >4:
        print "Game Over"

说明书要求将“休息”直接插入打印声明“恭喜!你沉没我的战舰!”

现在,如果我运行没有break语句的代码,它可以正常工作。如果我使用break语句运行代码,那么游戏就会起作用,但是在说“oops。你是否插入了一个break语句?”

很多其他人似乎也无法克服这个错误,论坛的主持人坚持说程序中没有错误。

所以,对那里的专家来说,请告诉我,如果我是对的,也就是说,如果这个论坛中的帖子暗示,这个if语句中的中断声明是行不通的。

我为详细而道歉,但我想提出确切的问题,以便我可以回答Codeacademy的答案!

1 个答案:

答案 0 :(得分:8)

如果要成为if循环的一部分,则需要缩进 for语句:

for turn in range(4):
    print turn+1
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))

    if guess_row == ship_row and guess_col == ship_col:
        print "Congratulations! You sunk my battleship!"
        break

    # other if statements

现在break循环中的for语句,实际上可以产生影响。