我試圖找出用什麼語句來獲取用戶1和10如何提示用戶一定量的數字
這裏輸入之間的一些中輸入一個整數就是我至今。
int a;
printf("Enter a number between 1 and 10: \n);
scanf("%d", &a);
我試圖找出用什麼語句來獲取用戶1和10如何提示用戶一定量的數字
這裏輸入之間的一些中輸入一個整數就是我至今。
int a;
printf("Enter a number between 1 and 10: \n);
scanf("%d", &a);
int input;
while (true){
scanf("%d",&input);
if (input>=1 && input<=10){
// process with your input then use break to end the while loop
}
else{
printf("Wrong input! try Again.");
continue;
}
}
這是一個非常糟糕的設計。在輸入無效的情況下循環會更好,然後處理該處理。也意味着你可以擺脫人工循環條件,並在'input'上循環。作爲一個方面說明,C代碼中的「繼續」的存在幾乎總是一個糟糕的設計的某種跡象。 – Lundin
1到10之間的數字是正確的嗎?所以第一階段,你必須驗證,如果輸入的是整數或沒有,那麼你將檢查範圍,
下面的代碼是什麼我提到現在
#define MAX_RANGE 10
int input;
if (scanf("%d",&input) != 1)
{
printf ("Really bad input please enter integer number like in range 1 - 10\n");
}
在第二階段如下
if (input < 1 || input > MAX_RANGE) {
printf("It's an integer but out of range error\n");
}
你還可以使用while..loop
爲同一如下
int input;
while (scanf("%d", &input) == 1 && input > 1 && input < 10)
{
// process your input
}
爲什麼不使用do .. while
循環?
int a;
do {
printf("Enter a number between 1 and 10: \n");
scanf("%d", &a);
} while (a < 1 || a > 10);
你不經意間用自己的標籤回答了你自己的問題 - 使用「while循環」。 – jrd1
而這個問題是...? – herohuyongtao