While Loop regarding user input type stuck on infinite else loop
显示 更早的评论
I need to check user input to make sure it's a number. The first part of the while loop works if i input a number, but the 'else' part gets stuck on infinite loop if I input something else, and it won't go out even if I input a number.
%Part of a Program to calculate equivalent resistance for series and parallel circuits
n = input('Enter Number of resistors: ')
for count = 1:n
%input resistance values into an array
R(count) = input(['Enter the value of Resistor ' num2str(count) ': ']);
flag = false;
while ~flag
num = isnumeric(R(count)); %check if resistance input is a number
if num == true %This part works and i can get through the whole for loop if I enter numbers correctly
flag = true;
else %This part gets stuck on an infinite loop even if I enter a number
disp('incorrect entry');
R(count) = input(['Enter the value of Resistor ' num2str(count) ': ']);
end
end
end
2 个评论
Rik
2020-9-21
What input are you trying? I don't get any infite loop on R2020a.
For readability, you should use the smart indent (in most releases you can select your code and hit ctrl+i), and remove empty lines that don't divide distinct parts of your code. You should also pre-allocate R and write some comments in your code that describe the flow of your program.
Shadi Khansa
2020-9-21
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!