'if'语句中的'break'

Aud*_*dra 0 python for-loop if-statement break

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

Python:在外部循环'打破'

所以,这是我的代码:

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"
Run Code Online (Sandbox Code Playgroud)

指令要求在打印声明"恭喜!你沉没我的战舰!"下直接插入"休息".

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

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

那么,对于那里的专家,请告诉我,如果我是对的,也就是说,在这个论坛中的帖子提出的if语句中,break语句将不起作用.

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

Mar*_*ers 9

您需要缩进你的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
Run Code Online (Sandbox Code Playgroud)

现在的break说法也是在中for环和实际上都有影响.

  • Martijn ......我现在可以帮你吧!我真的哭了几滴眼泪!谢谢!!!!!!!!!!!!!! (2认同)