我使用while循环来替换矩阵中的数据,但运行时偶尔会出现直接不执行while语句后的代码的现象,感觉很奇怪
我用步进执行命令都不会出现这种情况,但一运行就会出现
我把正常和不正常情况的图都附在下面,代码也拍照上传
代码:
function board=inti_board()
a=input('row=')+2
b=input('column=')+2
p=input('block generation rate=')
A=zeros(a,b)
A([1,a],:)=[5]
A(:,[1,b])=[5]
allnumber=(a-2)(b-2)
fivenumber=0
while fivenumber
for column=2:b-1
A(row,column)=randi([0,1]);
if A(row,column)>=1
A(row,column)=5;
fivenumber=fivenumber+1;
elseif A(row,column)==0
A(row,column)=0;
end
if fivenumber>=round(allnumber
break
end
end
if fivenumber>=round(allnumberp)
break
end
end
if fivenumber>=round(allnumberp)
break
end
end
for hang=randi([2 a-1])
for lie=randi([2 b-1])
if A(hang,lie)==0
A(hang,lie)=randi([1 4])
break
else
continue
end
end
end
function board=inti_board()
a=input('row=')+2
b=input('column=')+2
p=input('block generation rate=')
A=zeros(a,b)
A([1,a],:)=[5]
A(:,[1,b])=[5]
allnumber=(a-2)(b-2)
fivenumber=0
while fivenumber
for column=2:b-1
A(row,column)=randi([0,1]);
if A(row,column)>=1
A(row,column)=5;
fivenumber=fivenumber+1;
elseif A(row,column)==0
A(row,column)=0;
end
if fivenumber>=round(allnumber
break
end
end
if fivenumber>=round(allnumberp)
break
end
end
if fivenumber>=round(allnumberp)
break
end
end
for hang=randi([2 a-1])
for lie=randi([2 b-1])
if A(hang,lie)==0
A(hang,lie)=randi([1 4])
break
else
continue
end
end
end
循环执行不了,只有不满足循环条件才不会执行。
在循环内,加一些提示语句,看下是否有打印。