4. 流程控制语句

Posted LiuChangwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4. 流程控制语句相关的知识,希望对你有一定的参考价值。

一、分支语句

  分支语句:对于要先做判断再选择的问题需要使用分支结构。

1. if 语句

  if语句:适合判断一些连续的值。

使用1:

1             if (true)
2             {
3                 //条件为真时执行
4             }
5             else
6             {
7                 //条件为假时执行
8             }

使用2:

1             //判断多个条件
2             if (true)
3             {
4                 //条件为真时执行
5             }
6             else if(true)
7             {
8                 //条件为假时执行
9             }

2. switch语句

  switch语句:适合判断一些离散的值。

 1 //例:
 2         static void Main(string[] args)
 3         {
 4             //2015年31天的月份有1,3,5,8,7,10,12
 5             //30天有4,6,9,11
 6             //28天有2
 7 
 8             Console.WriteLine("请输入月份数");
 9             int month = int.Parse(Console.ReadLine());      //int.Parse的作用是把string类型转换为int 类型
10             switch (month)
11             {
12                 //格式:  case 常量表达式:条件语句;break;
13                 case 2:
14                     Console.WriteLine("本月有28天"); break; //break 结束当前控制语句或循环语句
15                 case 4:
16                 case 6:
17                 case 9:
18                 case 11:
19                     Console.WriteLine("本月有30天"); break;
20                 default: Console.WriteLine("本月有31天"); break;
21             }
22             Console.ReadKey();
23         }

 

3. 三位运算符

  三位运算符:只适合判断具有两个结果的情况。

1         //格式:条件判断表达式?成立时执行的语句:不成立时执行的语句
2         //例:  
3         static void Main(string[] args)
4         {
5             Console.WriteLine("请输入您要比较的数据");
6             int a = int.Parse(Console.ReadLine());
7             Console.WriteLine(a < 10 ? "您输入的数值小于10" : "您输入的数值大于等于10");
8             Console.ReadKey();
9         }

二、迭代语句

  迭代语句:是在程序中重复的执行,直到满足指定条件才停止的一段代码。

1.  while语句

格式1:

1             //先判断后执行
2             while (true)
3             {
4                 //条件为真时执行
5             }

格式2:

1             //先执行后判断,循环体至少被执行一次
2             do
3             {
4 
5             } while (true);

例:

 1         static void Main(string[] args)
 2         {
 3             //在屏幕输出1-50的数值
 4             int a = 1;
 5             while (a < 51)
 6             {
 7                 Console.WriteLine(a);
 8                 a++;
 9             }
10             Console.ReadKey();
11         }

2. for 语句

  可以记录循环的次数,有效控制循环的方式。

格式:

1             //for(初始条件1;判断条件2;循环条件4)
2             for (int i = 0; i < length; i++)
3             {
4                 // 循环语句3
5             }

例1:

 1         //例1:求输入数的阶乘
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("请输入需要求阶乘的数");
 5             for (;;)                                        //作用是不断循环大括号里面的语句
 6             {
 7                 int a = int.Parse(Console.ReadLine());
 8                 int jc = 1;
 9                 for (int i = 1; i <= a; i++)
10                 {
11                     jc *= i;
12                 }
13                 Console.WriteLine("阶乘的结果是" + jc);
14             }
15         }

例2:

 1         //例2:输出九九乘法表
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("================九九乘法表================");
 5             //外循环控制行,内循环控制列
 6             for (int i = 1; i < 10; i++)
 7             {
 8                 for (int j = 1; j <= i; j++)
 9                 {
10                     Console.Write("{0}×{1}={2} ", j, i, j * i);
11                     if (i * j < 10) Console.Write(" ");
12                 }
13                 Console.WriteLine();
14             }
15             Console.ReadKey();
16         }

3. foreach语句

  foreach语句:遍历集合。foreach循环用于列举出集合中的所有元素。

格式:

1             //var:任意的数据类型。如果数据类型确定,则应该给他具体指定;
2             //collection:需要遍历的集合;item:存储遍历的元素
3             foreach (var item in collection)
4             {
5 
6             }

例:

 1         //将一个英文句子的单词逐个输出
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("请您输入一个英文句子");
 5             string str = Console.ReadLine();
 6 
 7             //声明一个集合str用于接收用户输入的数据
 8             //每一次循环时,从集合中取出一个新的元素值。放到只读变量word中去,
 9             //如果括号中的整个表达式返回值为true,foreach块中的语句就能够执行,
10             //一旦集合中的元素都已经被访问到,整个表达式的值则为false,控制流程就转入到foreach块后面的执行语句
11             foreach (char word in str)
12                 if (char.IsWhiteSpace(word))
13                 {
14                     Console.WriteLine();
15                 }
16                 else
17                 {
18                     Console.Write(word);
19                 }
20             Console.ReadKey();
21         }

 

三、跳转语句

  跳转语句:是程序运行到某一位置时,可以跳转到程序中另一行代码的语句。

1. break语句:

  跳出循环体,执行后面的代码。

              1)在switch语句中用于从case语句中跳出,结束switch分支语句

              2)只能在环循环体内和switch语句体内使用break语句。可使程序终止循环而执行循体后面的语句

              3)用于跳出迭代语句,结束循环
              
              4)在多层循环中,一个break语句只向外跳一层

例:

 1         //通过for迭代语句,输出1-500的数使每10个数为一行,并且当输出数为2,3,4,5,6,7的倍数时跳出循环
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("在屏幕上输出1-500的数");
 5             for (int i = 1; i < 501; i++)
 6             {
 7                 if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0)
 8                 {
 9                     Console.WriteLine();
10                     Console.WriteLine("为2,3,4,5,6,7的倍数的数为");
11                     Console.WriteLine(i);
12                     break;
13                 }
14                 if (i % 10 == 0) Console.WriteLine(i);
15                 else
16                 {
17                     Console.Write(i + " ");
18                     if (i < 10) Console.Write(" ");
19                     if (i < 100) Console.Write(" ");
20                 }
21             }
22             Console.ReadKey();
23         }

2. continue语句

  continue语句:结束本次循环,进入下次循环 即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。而break语句则是结束整个循环停止运行。

例:

 1         //求50以内的奇数
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("50以内的奇数为:");
 5             for (int i = 1; i < 51; i++)
 6             {
 7                 if (i % 2 == 0) continue;  //停止当前的迭代语句,进入下次循环
 8 
 9                 else Console.Write(i + " ");
10             }
11             Console.ReadKey();
12         }

3. return语句

  return语句:只能出现在方法当中
  1)从当前方法中退出,返回到该调用方法的语句处继续执行
  2)返回一个值给该调用方法的语句,返回值的数据类型必须与方法中的声明的返回值的类型一致,可使用强制类型转换
  3)当方法说明中用void声明返回类型为空时,应使用格式(2)不返还任何值

     格式

  (1)return 表达式;
  (2)return ;

 1         //例:格式1
 2         static void Main(string[] args)
 3         {
 4             while (true)
 5             {
 6                 Console.WriteLine("请输入三个数,每输入一个数按下回车键");
 7                 double a = double.Parse(Console.ReadLine());
 8                 double b = double.Parse(Console.ReadLine());
 9                 double c = double.Parse(Console.ReadLine());
10                 double avg = average(a, b, c);
11                 Console.WriteLine("这三个数的平均数为:{0}", avg);
12             }
13         }
14         static double average(double a, double b, double c)
15         {
16             return (a + b + c) / 3;
17         }

 

 1         //格式2
 2         static void Main(string[] args)
 3         {
 4 
 5             while (true)
 6             {
 7                 Console.WriteLine("请输入三个数,每输入一个数按下回车键");
 8                 double a = double.Parse(Console.ReadLine());
 9                 double b = double.Parse(Console.ReadLine());
10                 double c = double.Parse(Console.ReadLine());
11                 average(a, b, c);
12             }
13         }
14         static void average(double a, double b, double c)
15         {
16             Console.WriteLine("这三个数的平均数为:{0}", (a + b + c) / 3);
17             return;
18         }

4. goto语句

  goto语句:是跳转语句,他既可以跳转到goto之后的语句也可以跳转到goto之前的语句。

      格式:goto 标识符;

      //标识符的定义:即为标签名,再加上冒号":"

例1:

 1         //方法1:
 2         static void Main(string[] args)
 3         {
 4             Console.WriteLine("5阶乘等于几?根据以下选项选择正确的答案:");
 5             Console.WriteLine("1、 5!=5\n2、 5!=10\n3、 5!=20\n4、 5!=60");
 6 
 7         import: int option = int.Parse(Console.ReadLine());
 8             switch (option)
 9             {
10                 case 1:
11                 case 2:
12                 case 3: goto error;
13                 case 4: goto right;
14                 default:
15                     Console.WriteLine("您的选项不存在,请重新输入");
16                     goto import;
17             }
18         error:
19             {
20                 Console.WriteLine("很遗憾,您错了!请重新输入:");
21                 goto import;
22             }
23         right:
24             Console.WriteLine("恭喜您,答对了!");
25             Console.ReadKey();
26         }

例2:

 1         //理论上程序从上往下执行,如果要跳过一段代码可以像下面处理
 2         static void Main(string[] args)
 3         {
 4             int a = 0;
 5             Console.WriteLine("5阶乘等于几?根据以下选项选择正确的答案:");
 6             Console.WriteLine("1、 5!=5\n2、 5!=10\n3、 5!=20\n4、 5!=60");
 7         error:
 8             {
 9                 a++;
10                 if (a > 1) Console.WriteLine("很遗憾,您错了!请重新输入:"); //声明变量a及if语句只是为了输出Console.WriteLine("")语句,可用其他方法实现
11             }
12         import: int option = int.Parse(Console.ReadLine());
13             switch (option)
14             {
15                 case 1:
16                 case 2:
17                 case 3: goto error;
18                 case 4: goto right;
19                 default:
20                     Console.WriteLine("您的选项不存在,请重新输入");
21                     goto import;
22 
23             }
24         right:
25             Console.WriteLine("恭喜您,答对了!");
26 
27             Console.ReadKey();
28         }

 

以上是关于4. 流程控制语句的主要内容,如果未能解决你的问题,请参考以下文章

第2章 循环流程控制语句

4.流程控制语句

IT兄弟连 Java语法教程 流程控制语句 分支结构语句4

流程控制语句-退出循环break

流程控制语句-switch选择语句

流程控制语句