逻辑
本文件涵盖了逻辑操作,包括条件语句、比较、布林逻辑以及基于真/假评估的行为,例如继续操作、处理等式以及处理永远为真或永远为假的情况。
条件
如果正确,请继续执行步骤
如果为 true,则
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>index</variable></variables><block type=\"controls_if\" disabled=\"true\" x=\"23\" y=\"112\"><value name=\"IF0\"><shadow type=\"logic_boolean\" disabled=\"true\"><field name=\"BOOL\">TRUE</field></shadow></value></block></xml>"}
此块用于检查值是否为真,然后执行一些操作。
参数: 逻辑(比较)
输出: N/A
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>index</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">index</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">index</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number of index is 3.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
检查对或错并执行一些相关操作
If true then … else …
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>index</variable></variables><block type=\"controls_if\" disabled=\"true\" x=\"-428\" y=\"113\"><mutation else=\"1\"/><value name=\"IF0\"><shadow type=\"logic_boolean\" disabled=\"true\"><field name=\"BOOL\">TRUE</field></shadow></value></block></xml>"}
此块用于检查值为 true 或 false。 如果为 true,则执行第一个操作。 否则,请执行第二个操作。
参数: 逻辑(比较)
输出: N/A
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">4</field></shadow></value><next><block type=\"controls_if\"><mutation else=\"1\"/><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is same as 3.</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is not same as 3.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
比较
当它们相同时
0 = 0
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_compare\" disabled=\"true\" x=\"-113\" y=\"427\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\" disabled=\"true\"><field name=\"NUM\">0</field></shadow></value><value name=\"B\"><shadow type=\"math_number\" disabled=\"true\"><field name=\"NUM\">0</field></shadow></value></block></xml>"}
如果两个值相同,则此块用于返回 true。
参数: 条件:
- 数字(预设值:0)
- 运算符:=(默认)/≠/≤/>/≥
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is 1.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
当第一个数字小于第二个数字时
0 < 0
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_compare\" disabled=\"true\" x=\"-22\" y=\"337\"><field name=\"OP\">LT</field><value name=\"A\"><shadow type=\"math_number\" disabled=\"true\"><field name=\"NUM\">0</field></shadow></value><value name=\"B\"><shadow type=\"math_number\" disabled=\"true\"><field name=\"NUM\">0</field></shadow></value></block></xml>"}
如果第一个值小于第二个值,则此块用于返回 true。
参数: 条件:
- 数字(预设值:0)
- 运算符:=(默认)/≠/≤/>/≥
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">LT</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is smaller than 1.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
当两个文本相同时
文本 = 文本
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_compare\" disabled=\"true\" x=\"23\" y=\"383\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"text\" disabled=\"true\"><field name=\"TEXT\"/></shadow></value><value name=\"B\"><shadow type=\"text\" disabled=\"true\"><field name=\"TEXT\"/></shadow></value></block></xml>"}
如果两个文本相同,则此块用于返回 true。
参数: 条件:
- 数字(预设值:0)
- 运算符:=(默认)/≠/≤/>/≥
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>text</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">text</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"text\"><field name=\"TEXT\">hello</field></block></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">text</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"text\"><field name=\"TEXT\">hello</field></block></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">Two texts are the same.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
布尔
如果两个比较为真,则继续操作
…和。。。
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>text</variable></variables><block type=\"logic_operation\" disabled=\"true\" x=\"-22\" y=\"517\"><field name=\"OP\">AND</field></block></xml>"}
如果两个比较为 true,则此块用于返回 true。
参数:
- 逻辑(比较)
- 条件:和(默认)/或
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_operation\"><field name=\"OP\">AND</field><value name=\"A\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">LT</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">4</field></shadow></value></block></value><value name=\"B\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">GT</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">2</field></shadow></value></block></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is smaller than 4 and larger than 2.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
如果至少有一个比较为真,则继续操作
…或。。。
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_operation\" disabled=\"true\" x=\"-22\" y=\"562\"><field name=\"OP\">OR</field></block></xml>"}
如果至少有一个比较为 true,则此块用于返回 true。
参数:
- 逻辑(比较)
- 条件:和(默认)/或
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_operation\"><field name=\"OP\">OR</field><value name=\"A\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">LT</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">4</field></shadow></value></block></value><value name=\"B\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">NEQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value></block></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is smaller than 4 and larger than 2.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
如果比较不正确,则返回 True
不
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_operation\" disabled=\"true\" x=\"-22\" y=\"562\"><field name=\"OP\">OR</field></block></xml>"}
如果比较错误,则用于返回 true。
参数:
- 逻辑(比较)
- 条件:和(默认)/或
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">number</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">3</field></shadow></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_negate\"><value name=\"BOOL\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_compare\"><field name=\"OP\">EQ</field><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\">number</field></block></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">4</field></shadow></value></block></value></block></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">The number is not same as 4.</field></shadow></value></block></statement></block></next></block></statement></block></xml>"}
输出:
永远为 True
真
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>number</variable></variables><block type=\"logic_boolean\" disabled=\"true\" x=\"-22\" y=\"652\"><field name=\"BOOL\">TRUE</field></block></xml>"}
这用于返回 true。
参数: 条件:true(默认值)/false
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">This text will appear.</field></shadow></value></block></statement></block></statement></block></xml>"}
输出:
始终为 False
假
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"logic_boolean\" disabled=\"true\" x=\"-22\" y=\"697\"><field name=\"BOOL\">FALSE</field></block></xml>"}
这用于返回 false。
参数: 条件:true/false(默认)
输出: 布尔值 (True/False)
示例代码:
{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">FALSE</field></shadow></value><statement name=\"DO0\"><block type=\"basic_consoleLogText\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">This text will not appear.</field></shadow></value></block></statement></block></statement></block></xml>"}
输出:
目录