break;
// 读取用户输入的分数,范围在0到100之间 // 将分数存储在数组中 // 返回值:所存储值的个数 //--------------------------------------------------------------- int getScores( short scores[ ], int len ) { int i = 0; puts( "Please enter scores between 0 and 100.\n" "Press <Q> and <Return> to quit.\n" ); while ( i < len ) { printf( "Score No. %2d: ", i+1 ); if ( scanf( "%hd", &scores[i] ) != 1 ) break; // 未读到数据:结束循环 if ( scores[i] < 0 || scores[i] > 100 ) { printf( "%d: Value out of range.\n", scores[i] ); break; // 抛弃这个值,并结束循环 } ++i; } return i; // 已存储的数据个数 }
continue;
// 读取分数 // -------------------------- int getScores( short scores[ ], int len ) { /* ... (同例6-7) ... */ while ( i < len ) { /* ... (同例6-7) ... */ if ( scores[i] < 0 || scores[i] > 100 ) { printf( "%d : Value out of range.\n", scores[i] ); continue; // 抛弃这个值,并读取另一个值 } ++i; // 已存储的数据个数加1 } return i; // 已存储的数据个数 }
goto 标签名称;
标签名称: 语句
// 在函数内部处理错误 // ---------------------------------- #include <stdbool.h> // 定义布尔值,true和false(C99) #define MAX_ARR_LENGTH 1000 bool calculate( double arr[ ], int len, double* result ) { bool error = false; if ( len < 1 || len > MAX_ARR_LENGTH ) goto error_exit; for ( int i = 0; i < len; ++i ) { /* ... 一些计算操作,其可能造成错误标志error被设定... */ if ( error ) goto error_exit; /* ... 继续计算;结果被存储到变量 *result 中... */ } return true; // 如果没有错误,程序会执行到此处 error_exit: // 错误处理子程序 *result = 0.0; return false; }
static const int maxSize = 1000; double func( int n ) { double x = 0.0; if ( n > 0 && n < maxSize ) { double arr[n]; // 一个变长度数组 again: /* ... */ if ( x == 0.0 ) goto again; // 合法:在arr的作用域内跳转 } if ( x < 0.0 ) goto again; // 非法: 从arr的作用域外跳转到作用域内 return x; }
return [表达式];
// 返回两个整数类型参数中的较小值 int min( int a, int b ) { if ( a < b ) return a; else return b; }
return ( a < b ? a : b );
本文链接:http://task.lmcjl.com/news/4932.html