คำถามติดแท็ก if-statement

คำสั่ง "if" เป็นโครงสร้างการควบคุมการไหลในภาษาการเขียนโปรแกรมส่วนใหญ่ที่แยกการไหลของการดำเนินการขึ้นอยู่กับเงื่อนไขไบนารีโดยทั่วไปจะประเมินที่รันไทม์ หากงบมักจะเรียกว่าเงื่อนไข เมื่อใช้แท็กนี้โปรดใส่แท็กภาษาที่เหมาะสมเช่นเช่น "java" หากคำถามของคุณเฉพาะภาษา

6
ความแตกต่างระหว่างวงเล็บเหลี่ยมเดี่ยวและคู่ใน Bash
ฉันกำลังอ่านตัวอย่างทุบตีเกี่ยวกับifแต่บางตัวอย่างเขียนด้วยวงเล็บเหลี่ยมเดียว: if [ -f $param ] then #... fi อื่น ๆ ด้วยวงเล็บเหลี่ยมสองชั้น: if [[ $? -ne 0 ]] then start looking for errors in yourlog fi อะไรคือความแตกต่าง?
161 bash  if-statement 

6
วิธีการป้องกัน ifelse () จากการเปลี่ยนวัตถุวันที่เป็นวัตถุที่เป็นตัวเลข
ฉันใช้ฟังก์ชันนี้ifelse()เพื่อจัดการกับเวกเตอร์วันที่ ฉันคาดหวังว่าผลการเรียนจะดีDateมากและรู้สึกประหลาดใจที่ได้รับnumericเวกเตอร์แทน นี่คือตัวอย่าง: dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) สิ่งนี้น่าประหลาดใจอย่างยิ่งเพราะการดำเนินการข้ามเวกเตอร์ทั้งหมดส่งคืนDateวัตถุ dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) ฉันควรจะใช้ฟังก์ชั่นอื่นเพื่อทำงานกับDateเวกเตอร์หรือไม่? ถ้าเป็นเช่นนั้นฟังก์ชั่นอะไร? ถ้าไม่ฉันifelseจะบังคับให้ส่งคืนเวกเตอร์ประเภทเดียวกันกับอินพุตได้อย่างไร หน้าความช่วยเหลือสำหรับifelseระบุว่านี่เป็นคุณลักษณะไม่ใช่ข้อผิดพลาด แต่ฉันยังคงดิ้นรนเพื่อหาคำอธิบายสำหรับสิ่งที่ฉันพบว่าเป็นพฤติกรรมที่น่าแปลกใจ
161 r  datetime  if-statement 

15
วิธีการย่อข้อความตามเงื่อนไขของฉันให้สั้นลง
ฉันมีคำสั่งที่มีเงื่อนไขยาวมากดังต่อไปนี้: if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){ // do something. } ฉันสงสัยว่าถ้าฉันสามารถ refactor การแสดงออก / คำสั่งนี้ในรูปแบบที่กระชับมากขึ้น ความคิดเกี่ยวกับวิธีการบรรลุสิ่งนี้?

14
กำลังตรวจหาตัวชี้ NULL ใน C / C ++ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ในการตรวจสอบโค้ดเมื่อเร็ว ๆ นี้ผู้ให้ข้อมูลพยายามบังคับให้การNULLตรวจสอบพอยน์เตอร์ทั้งหมดดำเนินการในลักษณะดังต่อไปนี้: int * some_ptr; // ... if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } แทน int * some_ptr; // ... if (some_ptr) { // Proceed } else { // Handle null-pointer error } …


12
ถ้าเงื่อนไข A ตรงกันเงื่อนไข B ต้องถูกจับคู่เพื่อดำเนินการ C
คำถามของฉันคือ: if (/* condition A */) { if(/* condition B */) { /* do action C */ } else /* ... */ } else { /* do action C */ } เป็นไปได้ไหมที่จะเขียนโค้ดของการกระทำ C ครั้งเดียวแทนที่จะเป็นสองครั้ง? จะทำให้มันง่ายขึ้นได้อย่างไร?

14
การกำหนดเงื่อนไข if หนึ่งบรรทัด
ฉันมีรหัสต่อไปนี้ num1 = 10 someBoolValue = True ฉันต้องการตั้งค่าnum1เป็น20if someBoolValueis True; และไม่ทำอะไรเลย นี่คือรหัสของฉันสำหรับสิ่งนั้น num1 = 20 if someBoolValue else num1 มีบางครั้งที่ฉันสามารถหลีกเลี่ยง...else num1ส่วนนั้นเพื่อให้มันดูสะอาดขึ้นได้หรือไม่? เทียบเท่ากับ if someBoolValue: num1 = 20 ฉันพยายามแทนที่ด้วย...else passสิ่งนี้: num1=20 if someBoolValue else pass. สิ่งที่ฉันได้รับคือข้อผิดพลาดทางไวยากรณ์ ฉันไม่สามารถละเว้น...else num1ส่วนนั้นได้

3
ใช้หลาย let-as ภายในคำสั่ง if ใน Swift
ฉันกำลังแกะค่าสองค่าจากพจนานุกรมและก่อนที่จะใช้พวกเขาฉันต้องใช้ค่าเหล่านั้นและทดสอบประเภทที่ถูกต้อง นี่คือสิ่งที่ฉันมาด้วย: var latitude : AnyObject! = imageDictionary["latitude"] var longitude : AnyObject! = imageDictionary["longitude"] if let latitudeDouble = latitude as? Double { if let longitudeDouble = longitude as? Double { // do stuff here } } แต่ฉันต้องการที่จะแพ็คทั้งสองถ้าให้คำสั่งเป็นหนึ่ง ดังนั้นมันจะเป็นอย่างนั้น: if let latitudeDouble = latitude as? Double, longitudeDouble = longitude as? Double …

17
การกำหนดในคำสั่ง if
ฉันได้เรียนAnimalและ Dogsubclass ฉันมักจะพบว่าตัวเองเข้ารหัสบรรทัดต่อไปนี้: if (animal is Dog) { Dog dog = animal as Dog; dog.Name; ... } Animal animal;สำหรับตัวแปร มีไวยากรณ์ที่อนุญาตให้ฉันเขียนบางอย่างเช่น: if (Dog dog = animal as Dog) { dog.Name; ... }
142 c#  casting  if-statement 

9
&& (AND) และ || (หรือ) ในคำสั่ง IF
ฉันมีรหัสต่อไปนี้: if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){ partialHits.get(z).put(z, tmpmap.get(z)); } ที่partialHitsเป็น HashMap จะเกิดอะไรขึ้นถ้าคำสั่งแรกเป็นจริง? Java จะยังตรวจสอบคำสั่งที่สองหรือไม่? เพราะในคำสั่งคำสั่งแรกที่จะเป็นจริง HashMap NullPointerExceptionไม่ควรมีคีย์ที่กำหนดดังนั้นหากคำสั่งที่สองคือการตรวจสอบผมจะได้รับ พูดง่ายๆก็คือถ้าเรามีรหัสต่อไปนี้ if(a && b) if(a || b) Java จะตรวจสอบbว่าaเป็นเท็จในกรณีแรกหรือไม่และaเป็นจริงในกรณีที่สองหรือไม่
142 java  if-statement 

16
จุดประสงค์ของการบล็อก 'if (0)' ในบล็อก if-else คืออะไร
คำถามของฉันเกี่ยวกับบรรทัดที่ฉันได้กล่าวถึงในเรื่องและฉันสามารถดูได้ในหลาย ๆ ที่ภายในรหัสการผลิต รหัสโดยรวมมีลักษณะดังนี้: if (0) { // Empty braces } else if (some_fn_call()) { // actual code } else if (some_other_fn_call()) { // another actual code ... } else { // default case } สาขาอื่นไม่เกี่ยวข้องกับคำถามของฉัน ฉันสงสัยว่าความหมายของการใส่if (0)ที่นี่คืออะไร เครื่องมือจัดฟันนั้นว่างเปล่าดังนั้นฉันไม่คิดว่ามันควรจะคอมเม้นต์บล็อคโค้ด มันบังคับให้คอมไพเลอร์ทำการปรับให้เหมาะสมหรือมีความตั้งใจแตกต่างกันหรือไม่? ฉันพยายามค้นหากรณีที่ชัดเจนนี้ที่นี่บน SO และบนอินเทอร์เน็ต แต่ไม่ประสบความสำเร็จ มีคำถามที่คล้ายกันเกี่ยวกับ JavaScript แต่ไม่ใช่ C. มีคำถามอื่นเกิดอะไรขึ้นเมื่อมีการกำหนดศูนย์ในเงื่อนไข `if` …
141 c  if-statement 

8
ดีกว่าที่จะ 'ลอง' บางอย่างและตรวจจับข้อยกเว้นหรือทดสอบว่าเป็นไปได้ก่อนเพื่อหลีกเลี่ยงข้อยกเว้นหรือไม่?
ฉันควรทดสอบifสิ่งที่ถูกต้องหรือเพียงtryเพื่อทำและตรวจจับข้อยกเว้น? มีเอกสารประกอบที่ระบุว่าควรใช้วิธีเดียวหรือไม่? pythonicทางเดียวมากกว่าหรือไม่? ตัวอย่างเช่นฉันควร: if len(my_list) >= 4: x = my_list[3] else: x = 'NO_ABC' หรือ: try: x = my_list[3] except IndexError: x = 'NO_ABC' ความคิดบางอย่าง ... PEP 20พูดว่า: ข้อผิดพลาดไม่ควรผ่านไปอย่างเงียบ ๆ เว้นแต่จะปิดเสียงไว้อย่างชัดเจน ควรใช้ a tryแทนการifตีความว่าเป็นข้อผิดพลาดที่ผ่านไปอย่างเงียบ ๆ หรือไม่? และถ้าเป็นเช่นนั้นคุณจะปิดเสียงโดยใช้วิธีนี้อย่างชัดเจนหรือไม่ ฉันไม่ได้หมายถึงสถานการณ์ที่คุณสามารถทำได้เพียง 1 ทางเท่านั้น ตัวอย่างเช่น: try: import foo except ImportError: import baz

9
วิธีที่สวยงามที่สุดในการเขียน 'if' แบบครั้งเดียว
เนื่องจาก C ++ 17 เราสามารถเขียนifบล็อกที่จะดำเนินการได้ทันทีดังนี้: #include <iostream> int main() { for (unsigned i = 0; i < 10; ++i) { if (static bool do_once = true; do_once) { // Enter only once std::cout << "hello one-shot" << std::endl; // Possibly much more code do_once = false; } } } ฉันรู้ว่าฉันอาจคิดมากเกินไปและมีวิธีอื่นในการแก้ปัญหานี้ …
138 c++  if-statement  c++17 

8
วิธีใช้ if - else โครงสร้างในไฟล์แบตช์
ฉันมีคำถามเกี่ยวกับโครงสร้าง if - else ในไฟล์แบตช์ แต่ละคำสั่งทำงานทีละคำสั่ง แต่ฉันไม่สามารถใช้บล็อก "if - else" ได้อย่างปลอดภัยดังนั้นส่วนเหล่านี้ของโปรแกรมของฉันจึงไม่ทำงาน ฉันจะทำให้ชิ้นส่วนเหล่านี้ทำงานได้อย่างไร ขอบคุณ. IF %F%==1 IF %C%==1 ( ::copying the file c to d copy "%sourceFile%" "%destinationFile%" ) ELSE IF %F%==1 IF %C%==0 ( ::moving the file c to d move "%sourceFile%" "%destinationFile%" ) ELSE IF %F%==0 IF %C%==1 ( …

10
จะทำอย่างไรถ้าอย่างอื่นใน Thymeleaf?
เป็นวิธีที่ดีที่สุดที่จะทำง่ายif- elseใน Thymeleaf? ฉันต้องการประสบความสำเร็จใน Thymeleaf เช่นเดียวกับ <c:choose> <c:when test="${potentially_complex_expression}"> <h2>Hello!</h2> </c:when> <c:otherwise> <span class="xxx">Something else</span> </c:otherwise> </c:choose> ใน JSTL สิ่งที่ฉันได้คิดไปแล้ว: <div th:with="condition=${potentially_complex_expression}" th:remove="tag"> <h2 th:if="${condition}">Hello!</h2> <span th:unless="${condition}" class="xxx">Something else</span> </div> ฉันไม่ต้องการประเมินpotentially_complex_expressionสองครั้ง conditionนั่นเป็นเหตุผลที่ผมแนะนำตัวแปรท้องถิ่น ยังคงฉันไม่ชอบใช้ทั้งและth:if="${condition}th:unless="${condition}" สิ่งที่สำคัญก็คือว่าผมใช้สองแท็กที่แตกต่างกัน: สมมติว่าและh2span คุณสามารถแนะนำวิธีที่ดีกว่าในการบรรลุเป้าหมายได้หรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.