यह आवश्यक नहीं कि आपको सदा दो विकल्पों में से ही एक का चुनाव करना पड़े। जीवन में आपको कई बार ऐसी परिस्थितियों का सामना करना पड़ता है जहाँ आपको दो से अधिक विकल्पों में से किसी एक का ही चुनाव करना पड़ता है। ऐसी परिस्थिति में आपके एक विकल्प यह है कि आप प्रत्येक उपलब्ध विकल्प का परीक्षण करें तथा परिणाम के आधार पर अनुकूल विकल्प का चुनाव करें।
अधिकांश programming भाषाओं में आप दो से अधिक उपलब्ध विकल्पों में से किसी एक विकल्प के चुनाव के लिए case संरचना का प्रयोग कर सकते हैं। यद्यपि, विभिन्न programming भाषाओं में case संरचना का नामकरण तथा प्रारूप पृथक-पृथक हो सकता है, तथापि इसका मूलभूत सिद्धांत समान ही रहता है। case संरचना, program के प्रयोगकर्ता के निर्णय के आधार पर निर्धारित निर्देशों के समूह को चलने में मदद करती है। if संरचना की भाँति, case संरचना में भी दो घटकों का प्रयोग होता हैं:
मूल्यांकन, जिसमें एक परिवर्ती राशि अथवा variable की राशि की जाँच की जाती है, तथा विभिन्न निर्देशों के समूह से युक्त मुख्य अंग घटकों का प्रयोग किया जाता है। यह निर्देशों के समूह परिवर्ती राशि के मूल्यांकन के आधार पर चलते हैं।
Case संरचना का मुख्य अंग परिसीमकों अथवा delimiters के मध्य समाविष्ट रहता है। Case संरचना के मुख्य अंग में आप विभिन्न परिस्थितियाँ अथवा cases सम्मिलित करते हैं। इनमें से प्रत्येक परिस्थिति अथवा case परिवर्ती राशि के मूल्यांकन के उपरांत प्राप्त अपेक्षित राशियों के रूप में परिभाषित होता है। यह case, विभिन्न programming भाषाओं में वर्णित labels के समान होते हैं। Labels एक program में वह स्थान चिन्हित करते हैं जहाँ प्रोग्राम का नियंत्रण तत्काल हस्तांतरित किया जा सकता है। अर्थात, परिवर्ती राशि के मूल्यांकन के उपरांत प्रोग्राम परिवर्ती राशि से सम्बंधित case का मिलान करता है तथा प्रोग्राम का नियंत्रण तुरंत उस परिस्थिति अथवा case पर हस्तांतरित हो जाता है। अब इस स्थान से प्रारम्भ कर, प्रोग्राम आने वाले सभी निर्देशों को चलाता है। परन्तु, यदि परवर्ती राशि के मूल्यांकन के पश्चात case संरचना के मुख्य अंग में उपस्थित किसी भी case से मेल नहीं होता है तो प्रोग्राम का नियंत्रण case संरचना के मुख्य अंग के तुरंत बाद उपस्थित निर्देश पर हस्तांतरित हो जाता है।