C#基础系列问题一break、continue、return、goto语句
一。break
1. break语句形式: break;
2. break语句功能:
A. 在switch语句中,break是其语法本省的一部分,break语句会终止其后语句的执行,退出switch语句。
B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,程序转到当前循环体后的第一个语句去继续执行。
3. 注意:
A. break语句在循环中使用时,一般总是与if一起使用,当条件满足(或不满足)时,负责退出循环。
B. 如果循环体中使用switch语句,而break出现在switch语句中,则它只用于结束switch,而不影响循环。
C. break语句只能结束包含它的最内层循环,而不能跳了多重循环。
4. 例: break语句的执行只能从while循环中退出,继续执行for循环的其它语句
而不是退出外层循环。
for( )
{
…
while ( )
{
if( )
{
break ;
}
}
…
}
二。continue
1.continue语句形式: continue;
2.continue语句功能: 它只能出现在循环体中,其功能是立即结束本次循环,即遇到continue语句时,不执行循环体中continue后的语句,立即转去判断循环条件是否成 立,即中止当次循环进入下一次循环。
3.Continue与break语句的区别: continue只是结束本次循环,而不是终止整个循环语句的执行,break则是终止当前整个循环语句的执行,转到当前循环语句后的下一条语句去执行。
程序表达式及流程图如下:
(1.) while(表达式1) (2.) while(表达式1)
{ {
…… ……
If(表达式2) break; if(表达式2) continue;
…… ……
} }
三.goto
1.goto语句形式:goto语句是无条件转向语句,其一般形式为:goto 语句标号;
2.功能:goto语句往往用来从多重循环中跳出。它在解决一些特定问题时很方便,但由于goto语句难于控制,尽量少用。
3.例:
当程序执行到goto语句时它会跳转到goto语句指向的语句标号开始执行
IN:
For()
{
……
Goto IN;
}
四.Return
1.return语句形式: return (返回值);
2.功能:return可以返回一个函数的值,并且跳出结束这个函数;
只要遇到return语句,程序就在那一行代码停止执行,执行控制将立刻返 回到调用该程序的代码处。
对于返回值类型为void的程序,return关键字单独作为完整的语句使用:return;
实例:
1)当return一个string类型时:以把一个字符串转换为小写为例
//把一个字符串转换为小写并返回,功能同string.ToLower
public static string ToLower(string str)
{
char[] array = new char[str.Length]; //定义一个字符数组,长度刚好等于给定的字符串的长度
int diff = 'a' - 'A'; //计算差值,ASCII码值是A<a(固定的,不用知道这个差值多少)
//使用一个循环读取给定的字符串,每次读取一个字符
for (int i = 0; i < str.Length; i++)
{
char ch = str[i]; //把当前循环读取的字符赋值个ch
char newch = '\0';
//判断这个字符是否是大写
if (char.IsUpper(ch))
{
newch = (char)(ch + diff); //转换为小写
}
//如果这个字符为小写,不转换
else
{
newch = ch;
}
array[i] = newch; //把转换后的字符放回字符串该循环位置
}
return new string(array);
}
2)当return一个数组时:以返回一个int类型数组为例
注意:return一个数组时,在使用的这个方法的时候,要在使用时声明一个同类型的数组用于接受方法返回的数组
public class Contains
{
// 按顺序输出小于给定数字的所有带7的数字及7的倍数
public static int[] Contains7(int number)
{
int n = 0; //用于记录计算出来的符合要求的结果数目
for (int i = 1; i <= number; i++)
{
//判断是否为7的倍数
if (i % 7 == 0)
{
n++;
continue;
}
string str = i.ToString();
if (str.Contains('7'))
{
n++;
}
}
int[] arry = new int[n];//声明一个整形数组存放结果,长度刚好等于符合要求的个数
int index = 0;
//List<int> arry = new List<int>();
for (int j = 1; j <= number; j++)
{
//判断是否为7的倍数
if (j % 7 == 0)
{
arry[index++] = j;
continue;
}
string str = j.ToString();
if (str.Contains('7'))
{
arry[index++] = j;
}
}
return arry;
}
public static void Main(string[] args)
{
Console.WriteLine("请输入一个数:");
int count = Convert.ToInt32(Console.ReadLine());
//声明一个整形数组用于接收(静态类)
int[] arry = Contains.Contains7(count);
//循环输出结果
for (int i = 0; i < arry.Length; i++)
{
Console.Write("{0}\0", arry[i]);
}
Console.Read();
}
}