Ruby를 사용하여 사용자로부터 입력을 받아 파일 목록에 대한 새 이름을 제공합니다. 배열에 이름을 저장하고 있지만 저장하기 전에 사용자의 입력이 유효한지 확인하기 위해 일련의 조건을 반복합니다.모두 만족할 때까지 여러 조건을 반복합니다.
puts "Rename file to:"
new_name = gets.chomp
new_name = check_input(new_name,@all_names)
@all_names << new_name
def check_input(new_name,all_names)
while new_name.match(/\s/)
puts "Names must not contain spaces:"
new_name = gets.chomp
end
while new_name.empty?
puts "Please enter a name:"
new_name = gets.chomp
end
while all_names.include? new_name
puts "That name already exists. Please enter a different name:"
new_name = gets.chomp
end
return new_name
end
점수이 꽤 잘 작동하지만 각 "동안을 통해 루프에 있는지 확인하려면 : 그것은 본질적으로 (내가 질문에 관련이없는 코드의 일부를 제거했습니다)이 아래로 비등 "조건이 반복되고, 모두의 조건이 충족됩니다. 예를 들어, 이름 "ABC는"이미, 사용자가이 순서는 다음 경우
- 가 입력을 "ABC는"=> "이. 그 이름이 이미 다른 이름을 입력하세요 존재"
- 는 "ABC를 입력 "=>"이름에 공백이 ABC "를"
- 가 입력 "을 포함 할 수 없습니다 다시 =>
마지막 항목이 성공적으로 작동하지만,이를 확인하는 조건을 스킵 이후 나는 그것을 원하지 않는다 중복. 각각의 새로운 항목과 함께 이러한 조건을 동시에 반복하는 더 좋은 방법이 있습니까?
도움 주셔서 감사합니다.
매우 효율적입니다. 정말 고맙습니다! – lumos