[問題] if 裡面加try?
我現在有一支程式
for i = 1:m
for j = 1:n
if M[i,j-1] == 1 || M[i-1,j] == 1
u(i,j) = M(i,j-1) + M(i-1,j)
else if M[i-1,j-1] == 1
u(i,j) = M(i-1,j-1)
else
u(i,j) = M(i,j)
end
end
end
但是如果i,j等於1的話i-1跟j-1會underflow。
今天我想要underflow的時候就把該bool值設為0
例如if M[i,j-1] == 1 or M[i-1,j] == 1
j-1 underflow 所以M[i,j-1] == 1判斷為false
i-1沒有underflow 所以M[i-1,j] == 1 正常判斷,假設為true
所以這段if的判斷式就是 false || true = true
直接在if裡面加try catch試了好久都無法執行,說是錯誤的用法
當然也可以用if去判斷有沒有underflow 但是程式會變的很難看
if j-1 < 1 && i-1 < 1
u(i,j) = M(i,j)
else if j-1 < 1
if M(i-1,j) == 1
u(i,j) = M(i-1,j)
end
else if i-1 < 1
if M(i,j-1) == 1
u(i,j) = M(i,j-1)
end
else if M[i,j-1] == 1 || M[i-1,j] == 1
u(i,j) = M(i,j-1) + M(i-1,j)
不僅程式變的難看,可讀性也降低許多。
因此才想說如果可以用try catch把underflow的值設為false就可以簡化很多了!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.3.115
※ 編輯: moonskyex 來自: 134.208.3.115 (10/16 15:59)