From Test-Scratch-Wiki


यदि () तो, अन्यथा
Category नियंत्रण
Type सी
Introduced in १६दिसंबर०५

यदि () तो, अन्यथा ब्लाक एक नियंत्रण ब्लॉक और एक सी ब्लॉक है। (इसे कभी-कभी "ई" ब्लॉक के रूप में भी जाना जाता है।) ब्लॉक अपनी बूलियन स्थिति की जाँच करता है; यदि स्थिति सत्य है, तो पहले सी (स्पेस) के अंदर रखा गया कोड सक्रिय हो जाएगा; यदि स्थिति गलत है, तो दूसरे सी के अंदर का कोड सक्रिय हो जाएगा।

स्क्रैच २.० से पहले, इस ब्लॉक को यदि () तो, अन्यथा या

if <>{

}else{

}::control

उदाहरण उपयोग

प्रोग्रामिंग में, एक बहुत ही महत्वपूर्ण हिस्सा शर्तों की जाँच करना है। स्क्रैच में, यह यदि () ब्लॉक के साथ किया जाता है। हालाँकि, "शर्तों की जाँच" का एक महत्वपूर्ण हिस्सा कोड का एक और टुकड़ा होना है जो शर्त गलत होने पर चलता है। हालाँकि इसे हल किया जा सकता है, लेकिन यदि () तो, अन्यथा ब्लॉक इसे सरल बनाता है। कुछ सामान्य उपयोग:

  • यदि शर्त गलत है तो पहली क्रिया के विपरीत क्रिया करना
repeat until <touching (edge v)?>
    if <(mouse x) > [0]> then
        move (1) steps
    else
        move (-1) steps
    end
end
  • यदि किसी स्प्राइट का स्वास्थ्य एक निश्चित मात्रा से कम है, तो वह मर जाता है, अन्यथा वह कुछ और करता है
when green flag clicked
forever
   if <(health) = [0]> then
        play sound (Failure v) until done
        stop [all v]
    else
        broadcast (attack v)
end
  • आसान स्क्रिप्ट में परिवर्तन

— यदि कोई चर किसी निश्चित मान के बराबर है, तो एक बात होती है, और यदि चर मान के बराबर नहीं है, तो एक अलग बात होती है

if <(answer) = [5]> then
    say [Correct!] for (2) seconds
else
    play sound (failed task v) until done
    stop [all v]
end
  • स्क्रिप्ट जो परिस्थितियों में परिवर्तन के अनुकूल हो (जैसे कि कोई परिवर्तनशील चर)
if <touching color [#7092be]?> then
    say [We found water!]
else
    say [ ]
end

समाधान

इस ब्लॉक को निम्नलिखित कोड के साथ दोहराया जा सकता है:

if <. . .::grey> then
 . . . //शर्त=सत्य
end
if <not <. . .::grey> > then
 . . . //शर्त=झूठ
end

or

if <. . .::grey> then
    . . .::grey
    broadcast (continue v)
    stop [this script v]
end
. . .::grey
broadcast (continue v)

ध्यान दें कि यह अंतिम समाधान केवल तभी काम करता है जब शर्त को पहले यदि () ब्लॉक के मध्य में नकारा नहीं जाएगा।

सुझाव

स्क्रैचर्स ने एक ब्लॉक का सुझाव दिया है जो सत्य होने पर पहले इनपुट की रिपोर्ट करता है, अन्यथा असत्य होने पर दूसरे इनपुट की रिपोर्ट करता है।[1]

if <> then [] else []:: operators reporter

यह ब्लॉक कुछ स्क्रैच संशोधनों में मौजूद है, जैसे कि स्नैप!। हालाँकि, इसे निम्नलिखित कोड के साथ हल किया जा सकता है, जो केवल संख्याओं के लिए काम करता है:

((true::grey)*<boolean::grey>)+((false::grey)*<not<boolean::grey>>)

या यह, जो किसी भी तर्क प्रकार के लिए काम करता है:

if <boolean::grey> then
set [report v] to (true::grey)
else
set [report v] to (false::grey)
end

संदर्भ

Cookies help us deliver our services. By using our services, you agree to our use of cookies.