2017-01-22 63 views
1

編程新手,我已經在這個任務上琢磨了幾個星期了。 我對C有一個非常基本的理解,雖然我快要完成了,但我想我可能在爲此菜單系統選擇開關盒時犯了一個錯誤。Noob C幫助 - 在開關/外殼內循環?

所以主菜單提供了6個選項,該選項有檢查,以確保Z1比Z2

更大
case 5: 

printf("\nEnter value Z1:\n"); 
scanf("%f", &Z1); 
printf("\nEnter value Z2:\n"); 
scanf("%f", &Z2); 

if (Z1 < Z2){ 
printf("\nZ2 must be less than Z1...\n"); 
} 

我只是想回到節目回,除非Z1的情況下開始大於Z2。在閱讀另一個問題之後,看起來你不能循環開關,除非值滿足if語句。我不知道如何寫作if語句的一部分。

任何建議將不勝感激,我把我的頭髮撕掉,認爲我將不得不重寫它的大部分。如果這件事真的很直接,我已經找了一個小時試圖找到一些東西,也許我已經看到了答案,但只是不明白這一點。

謝謝你的時間!

+0

您可以使用[轉到statments(https://www.tutorialspoint.com/cprogramming/c_goto_statement.htm)。另外,我建議你改變你的機制,並在你的main函數中創建「infinte」循環。通過這種方式,您可以在任何情況下打破或繼續您的定義。 –

+0

此外,如果您可以提供包含所有開關式語句的大部分代碼,人們可能會建議更好的解 –

回答

1

a do {...} while (condition);循環似乎很適應;它非常接近while循環,因此只有在代碼被執行後才能檢查條件;這意味着你的代碼必須至少運行一次。 在這裏,這將是:

do { 
    //get z1 and z2 
} while (Z1 < Z2); 
+0

謝謝你,你是我的英雄。 – tronturbo

+0

非常歡迎您,每個C程序員都會遇到一些簡單的問題,比如您在開始時......您現在可以驗證答案以通知您的問題已經回答,因此其他SO用戶可以專注於新問題。祝你好運! –