&&
не является арифметическим оператором. Это логично, и оператор возвращает логическое значение, либо true
, либо false
в C ++.
Если вы знакомы с логическими операциями, вы должны знать, что только true and true
возвращает true
. Если любой из операндов логического и оператора false
, то все выражение false
.
Далее, в C ++ все, кроме 0
, NULL (nullptr)
и false
считается true
, в противном случае эти три члена false
.
Поэтому в вашем эксперименте я предполагаю, что вы всегда вводили ненулевые элементы, поэтому ваше выражение всегда true
. И в отличие от других языков программирования, например, Python или Java, C ++ не будет автоматически распечатывать текст логических значений. Он просто покажет 0
для false
и 1
для true
. Поэтому в вашей демонстрации вы всегда видите 1
на экране.
Если я читаю ваш исходный код, кажется, что вам просто нужно перечислить продукт с ценой выше 200, который вы можете сделать с помощью , где , позже, возможно, если вы захотите дополнительно отфильтровать данные, вы можете узнать [112 ] ransack gem
это для вашего index.html.erb
<table>
<% @products.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= product.price %></td>
</tr>
<% end %>
</table>
это ваш ProductsController
class ProductsController < ApplicationController
def index
# if you want directly to filter just the list product that has price above 200
# then you can use where, your view just to show the result of @products
@products = Product.where('price > ?',200)
end
end