虽然循环内部在ruby中只运行一次?

时间:2017-02-27 07:44:21

标签: ruby-on-rails ruby

我在ruby中使用while语句,而另一个子语句在该父项中使用时打印:

z = 0
  i = 0
  while z < 2
    puts "hi coding"
        while i < 4  do
          puts "hello"
           i +=1
        end
    z +=1
  end

我想先打印(&#34; hi编码&#34;)然后打印(&#34;你好,你好,你好,你好&#34;四次),这个总块打印两次但是发生了什么是打印两次和(4次你好只打印一次): 所以我的输出就像:

hi coding 
hello 
hello
hello
hello
hi coding
*************************

但我想要它:

hi coding
hello
hello
hello
hello
hi coding
hello
hello
hello
hello
*************************

我在这里做错了什么?

3 个答案:

答案 0 :(得分:4)

我会给你一个更美妙的选择:

2.times do
  puts 'hi coding'
  4.times { puts 'hello' }
end

答案 1 :(得分:0)

在第一次循环之后,i的值已经为4,因此不再打印“hello”。 将您的代码更改为:

z = 0
  while z < 2
    puts "hi coding"
    i = 0
      while i < 4  do
        puts "hello"
        i +=1
      end
   z +=1
end

答案 2 :(得分:0)

您也可以尝试使用嵌套循环

main = 0
begin
  puts "Hi Coding"
  puts "*" * 10
  inner = 0
  begin
    puts "Hello"
    inner += 1
  end while inner < 4
  main += 1
end while main < 2

输出:

Hi Coding
**********
Hello
Hello
Hello
Hello
Hi Coding
**********
Hello
Hello
Hello
Hello