नियंत्रण#
परिचय#
कंट्रोल में टाइमिंग, प्रोग्राम फ्लो, कंडीशनल लॉजिक और प्रोजेक्ट टर्मिनेशन के फंक्शन शामिल हैं। इन कंट्रोल की मदद से आप एग्जीक्यूशन को पॉज कर सकते हैं, लूप बना सकते हैं, लॉजिक पाथ डिफाइन कर सकते हैं और प्रोग्राम को समाप्त कर सकते हैं।
कार्य और कीवर्ड#
नीचे उपलब्ध नियंत्रणों की सूची दी गई है, जिसमें एपीआई फ़ंक्शन और सी++ कीवर्ड शामिल हैं:
wait– प्रोजेक्ट को एक निश्चित समय के लिए रोक देता है।for– कोड के एक ब्लॉक को एक निश्चित संख्या में दोहराता है।if– यदि कोई शर्त सही है तो कोड का एक ब्लॉक चलाता है।if/else– यदि कोई शर्त सत्य है तो कोड का एक ब्लॉक चलाता है, या यदि यह असत्य है तो एक अलग ब्लॉक चलाता है।if/else if/else– क्रम में कई शर्तों की जाँच करता है और पहले ब्लॉक को चलाता है जिसकी शर्त सही है।while– एक शर्त सही रहने तक कोड के एक ब्लॉक को दोहराता है।break– वर्तमान लूप से तुरंत बाहर निकलता है।programStop– परियोजना को तुरंत समाप्त करता है।
wait#
अगली कोड लाइन पर जाने से पहले प्रोजेक्ट को एक निश्चित समय के लिए रोक देता है।
Available Functionsvoid wait(
double time,
timeUnits units );
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
प्रतीक्षा करने का समय, धनात्मक |
|
|
समय को दर्शाने वाली इकाई: |
इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।
Examples// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();
for#
यह कोड के एक ब्लॉक को दोहराता है। गिनती वाला संस्करण एक निश्चित संख्या में बार चलता है; जबकि रेंज-आधारित संस्करण संग्रह में प्रत्येक आइटम के लिए एक बार चलता है।
Syntax1 — गिनती लूप — एक निश्चित संख्या में बार चलता है।
for (int i = 0; i < count; i++) { // code block }
Parameters2 — रेंज-आधारित लूप — संग्रह में प्रत्येक आइटम के लिए एक बार चलता है।
for (type element : collection) { // code block }
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
कोड ब्लॉक को कितनी बार दोहराया जाएगा, यह संख्या। |
|
नाम टाइप करें |
संग्रह में प्रत्येक आइटम का डेटा प्रकार (उदाहरण के लिए |
|
|
लूप के वर्तमान आइटम के मान को रखने वाले वेरिएबल का नाम। |
|
|
वह ऐरे (या वेक्टर) जिसमें वे आइटम होते हैं जिन पर लूप चलाया जाएगा। |
यह नियंत्रण संरचना कोई मान वापस नहीं करती है।
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 है तो संलग्न कोड ब्लॉक को चलाता है।
if (condition) {
// code block
}
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। यदि यह |
यह नियंत्रण संरचना कोई मान वापस नहीं करती है।
Exampleswhile (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।
if (condition) {
// code block if true
}
else {
// code block if false
}
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। यदि यह |
यह नियंत्रण संरचना कोई मान वापस नहीं करती है।
Exampleswhile (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green when pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
if/else if/else#
यह कई शर्तों के आधार पर यह चुनता है कि कोड का कौन सा संलग्न ब्लॉक चलेगा।
Syntaxif (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
}
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन स्टेटमेंट चलने पर किया जाता है। पहली शर्त जो |
यह नियंत्रण संरचना कोई मान वापस नहीं करती है।
Notesifअपने ब्लॉक को चलाता है यदि शर्तtrue.else ifअतिरिक्त शर्तों की जाँच केवल तभी करता है जब पिछली सभी शर्तेंfalse। एकाधिकelse ifकथनों का उपयोग किया जा सकता है।elseअपने ब्लॉक को तभी चलाता है जब पिछली कोई भी शर्त सही न होtrue.
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 है तब तक कोड बार-बार चलता है।
while (condition) {
// code block
}
पैरामीटर |
प्रकार |
विवरण |
|---|---|---|
|
|
एक एक्सप्रेशन या वेरिएबल जिसका मूल्यांकन प्रत्येक पुनरावृति से पहले किया जाता है। यदि यह |
यह नियंत्रण संरचना कोई मान वापस नहीं करती है।
Notesइसे “Wait until” की तरह भी इस्तेमाल किया जा सकता है, इसके लिए शर्त से पहले
!जोड़ना होगा, जैसा कि नीचे दिए गए उदाहरणों में दिखाया गया है।
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 सबसे भीतरी लूप से बाहर निकल जाता है।
break;
यह कथन किसी भी पैरामीटर को स्वीकार नहीं करता है।
Return Valuesयह कथन कोई मान नहीं लौटाता है।
Exampleswhile (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#
किसी प्रोजेक्ट को तुरंत समाप्त कर देता है।
SyntaxBrain.programStop();
यह कथन किसी भी पैरामीटर को स्वीकार नहीं करता है।
Return Valuesयह कथन कोई मान नहीं लौटाता है।
Exampleswhile (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();
}
}