नियंत्रण#

परिचय#

कंट्रोल में टाइमिंग, प्रोग्राम फ्लो, कंडीशनल लॉजिक और प्रोजेक्ट टर्मिनेशन के फंक्शन शामिल हैं। इन कंट्रोल की मदद से आप एग्जीक्यूशन को पॉज कर सकते हैं, लूप बना सकते हैं, लॉजिक पाथ डिफाइन कर सकते हैं और प्रोग्राम को समाप्त कर सकते हैं।

कार्य और कीवर्ड#

नीचे उपलब्ध नियंत्रणों की सूची दी गई है, जिसमें एपीआई फ़ंक्शन और सी++ कीवर्ड शामिल हैं:

  • wait – प्रोजेक्ट को एक निश्चित समय के लिए रोक देता है।

  • for – कोड के एक ब्लॉक को एक निश्चित संख्या में दोहराता है।

  • if – यदि कोई शर्त सही है तो कोड का एक ब्लॉक चलाता है।

  • if/else – यदि कोई शर्त सत्य है तो कोड का एक ब्लॉक चलाता है, या यदि यह असत्य है तो एक अलग ब्लॉक चलाता है।

  • if/else if/else – क्रम में कई शर्तों की जाँच करता है और पहले ब्लॉक को चलाता है जिसकी शर्त सही है।

  • while – एक शर्त सही रहने तक कोड के एक ब्लॉक को दोहराता है।

  • break – वर्तमान लूप से तुरंत बाहर निकलता है।

  • programStop – परियोजना को तुरंत समाप्त करता है।

wait#

अगली कोड लाइन पर जाने से पहले प्रोजेक्ट को एक निश्चित समय के लिए रोक देता है।

Available Functions
void wait(
  double time,
  timeUnits units );

Parameters

पैरामीटर

प्रकार

विवरण

time

double

प्रतीक्षा करने का समय, धनात्मक double के रूप में।

units

timeUnits

समय को दर्शाने वाली इकाई: msec (डिफ़ॉल्ट) – मिलीसेकंड या seconds

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

Examples
// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();

for#

यह कोड के एक ब्लॉक को दोहराता है। गिनती वाला संस्करण एक निश्चित संख्या में बार चलता है; जबकि रेंज-आधारित संस्करण संग्रह में प्रत्येक आइटम के लिए एक बार चलता है।

Syntax

1 — गिनती लूप — एक निश्चित संख्या में बार चलता है।

for (int i = 0; i < count; i++) {
   // code block
}

2 — रेंज-आधारित लूप — संग्रह में प्रत्येक आइटम के लिए एक बार चलता है।

for (type element : collection) {
   // code block
}

Parameters

पैरामीटर

प्रकार

विवरण

count

int

कोड ब्लॉक को कितनी बार दोहराया जाएगा, यह संख्या।

type

नाम टाइप करें

संग्रह में प्रत्येक आइटम का डेटा प्रकार (उदाहरण के लिए int, double)।

element

variable

लूप के वर्तमान आइटम के मान को रखने वाले वेरिएबल का नाम।

collection

array

वह ऐरे (या वेक्टर) जिसमें वे आइटम होते हैं जिन पर लूप चलाया जाएगा।

Return Values

यह नियंत्रण संरचना कोई मान वापस नहीं करती है।

Examples
// Drive in a square
for (int i = 0; i < 4; i++) {
  Drivetrain.driveFor(forward, 100, mm);
  Drivetrain.turnFor(right, 90, degrees);
}

// Drive forward different distances
int distances[] = {100, 150, 200};
for (int d : distances) {
  Drivetrain.driveFor(forward, d, mm);
  wait(0.5, seconds);
}

if#

यदि शर्त true है तो संलग्न कोड ब्लॉक को चलाता है।

Syntax
if (condition) {
  // code block
}

Parameters

पैरामीटर

प्रकार

विवरण

condition

bool

एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। यदि यह trueहै, तो if ब्लॉक के अंदर का कोड चलता है; यदि यह falseहै, तो ब्लॉक को छोड़ दिया जाता है।

Return Values

यह नियंत्रण संरचना कोई मान वापस नहीं करती है।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Display a message once the screen is pressed
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
    Brain.Screen.print("Screen pressed!");
    break;
  }
  wait(5, msec);
}

if/else#

यह निर्धारित करता है कि संलग्न कोड ब्लॉक किस आधार पर चलता है, यह इस बात पर निर्भर करता है कि शर्त true है या false।

Syntax
if (condition) {
  // code block if true
}
else {
  // code block if false
}

Parameters

पैरामीटर

प्रकार

विवरण

condition

bool

एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। यदि यह trueहै, तो if ब्लॉक के अंदर का कोड चलता है; यदि यह falseहै, तो else ब्लॉक के अंदर का कोड चलता है।

Return Values

यह नियंत्रण संरचना कोई मान वापस नहीं करती है।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Turn the screen green when pressed
    Brain.Screen.clearScreen(green);
  } else {
    Brain.Screen.clearScreen();
  }
}

if/else if/else#

यह कई शर्तों के आधार पर यह चुनता है कि कोड का कौन सा संलग्न ब्लॉक चलेगा।

Syntax
if (condition) {
  // code block if first condition is true
}
else if (condition) {
  // code block if second condition is true
}
else {
  // code block if no conditions are true
}

Parameters

पैरामीटर

प्रकार

विवरण

condition

bool

एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। पहली शर्त जो true वह निर्धारित करती है कि कौन सा ब्लॉक चलेगा; यदि कोई trueनहीं है, तो else चलता है।

Return Values

यह नियंत्रण संरचना कोई मान वापस नहीं करती है।

Notes
  • if अपने ब्लॉक को चलाता है यदि शर्त true.

  • else if अतिरिक्त शर्तों की जाँच केवल तभी करता है जब पिछली सभी शर्तें false। एकाधिक else if कथनों का उपयोग किया जा सकता है।

  • else अपने ब्लॉक को तभी चलाता है जब पिछली कोई भी शर्त सही न हो true.

Examples
while (true) {
  // Turn screen blue if pressed on the left half
  if (Brain.Screen.pressing() && Brain.Screen.xPosition() < 240) {
    Brain.Screen.clearScreen(blue);

  // Turn screen green if pressed on the right half
  } else if (Brain.Screen.pressing() && Brain.Screen.xPosition() > 240) {
    Brain.Screen.clearScreen(green);

  } else {
    Brain.Screen.clearScreen();
  }

  wait(20, msec);
}

while#

जब तक स्थिति true है तब तक कोड बार-बार चलता है।

Syntax
while (condition) {
  // code block
}

Parameters

पैरामीटर

प्रकार

विवरण

condition

bool

एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन प्रत्येक पुनरावृति से पहले किया जाता है। यदि यह trueहै, तो लूप जारी रहता है; यदि यह falseहै, तो लूप रुक जाता है।

Return Values

यह नियंत्रण संरचना कोई मान वापस नहीं करती है।

Notes
  • इसे “Wait until” की तरह भी इस्तेमाल किया जा सकता है, इसके लिए शर्त से पहले ! जोड़ना होगा, जैसा कि नीचे दिए गए उदाहरणों में दिखाया गया है।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Turn the screen green whenever it's pressed
    Brain.Screen.clearScreen(green);
  } else {
    Brain.Screen.clearScreen();
  }
}

// Wait until the screen is pressed to turn it green
while (!Brain.Screen.pressing()) {
  wait(20, msec);
}

Brain.Screen.clearScreen(green);

break#

वर्तमान लूप से तुरंत बाहर निकल जाता है। यदि नेस्टेड लूप में है, तो break सबसे भीतरी लूप से बाहर निकल जाता है।

Syntax
break;

Parameters

यह कथन किसी भी पैरामीटर को स्वीकार नहीं करता है।

Return Values

यह कथन कोई मान नहीं लौटाता है।

Examples
while (true) {

  // Press the screen to pause on a color
  Brain.Screen.clearScreen(red);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    break;
  }

  Brain.Screen.clearScreen(green);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    break;
  }
}

programStop#

किसी प्रोजेक्ट को तुरंत समाप्त कर देता है।

Syntax
Brain.programStop();

Parameters

यह कथन किसी भी पैरामीटर को स्वीकार नहीं करता है।

Return Values

यह कथन कोई मान नहीं लौटाता है।

Examples
while (true) {

  // Press the screen to end the project
  Brain.Screen.clearScreen(red);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }

  Brain.Screen.clearScreen(green);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
}