Rumah  >  Artikel  >  Java  >  java中的流程控制语句示例详解

java中的流程控制语句示例详解

怪我咯
怪我咯asal
2017-06-25 10:10:591300semak imbas

程序的结构分类:
  顺序结构:按照写代码的顺序 一次执行
  选择结构:根据条件的不同有选择的执行不同的代码
  循环结构:在一定条件下 反复执行某一片代码

选择结构:

  也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种  if结构    switch结构 

 if分为三种格式 :

if的第一种格式

   if(条件){
      语句块
   }

执行流程:
  先判断条件, 如果为真 则语句块执行,  否则 语句块不执行

代码演示:

 1 public static void main(String[] args) { 2         System.out.println("开始"); 3         // 定义两个变量 4         int a = 10; 5         int b = 20; 6  7         if (a == b) { 8             System.out.println("a等于b"); 9         }10 11         int c = 10;12         if (a == c) {13             System.out.println("a等于c");14         }15 16         System.out.println("结束");17     }

if的第二种格式:

if(条件){

  语句块 1

}else{

  语句块2

}

执行流程:
先判断条件的真假, 如果为真 则只执行语句块1, 否则, 只执行语句块2
代码演示:

 1 public static void main(String[] args) { 2         System.out.println("开始"); 3         // 判断给定的数据是奇数还是偶数 4         // 定义变量 5         int a = 100; 6         // 给a重新赋值 7         a = 99; 8  9         if (a % 2 == 0) {10             System.out.println("a是偶数");11         } else {12             System.out.println("a是奇数");13         }14 15         System.out.println("结束");16     }

if语句的第三种格式:

if(条件1){

    语句块1
  }else if(条件2){

    语句块2
 }else if(条件3){
    语句块3
 }
 ...
 else if(条件n){

    语句块n
 }else{

    语句块n+1
 }

执行流程:
  先判断条件1 ,如果为真 则执行语句块1,执行完毕,跳出整个if结构执行if下面的语句, 否则判断条件2,
  如果条件2为真,则执行语句块2,执行完毕跳出
  整个if结构执行if下面的语句, 如果条件2也为假,则判断条件3 ,如果为真... 如果判断到条件n都为假,
  则执行else中的语句块n+1
代码演示:
  x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<=-1 y = 2x – 1;
根据给定的x的值,计算出y的值并输出。

 1 public static void main(String[] args) { 2  3         int x = 5; 4         int y; 5         if (x >= 3) { 6             y = 2 * x + 1; 7         } else if (x >= -1 && x < 3) { 8             y = 2 * x; 9         } else  {10             y = 2 * x - 1;11         }12 13         System.out.println("y的值是:"+y);14     }</p>
<p><strong>选择结构switch</strong></p>
<p>语法结构 <br><br> switch(表达式){<br> 	case 目标值1:<br> 		     语句块1<br> 		    break;<br> 	case 目标值2:<br> 		     语句块2<br> 		    break;<br> 	case 目标值3:<br> 		     语句块3<br> 		    break;<br> 	...<br> 	case 目标值n:<br> 		     语句块n+1<br> 		    break;<br> 	default:<br> 		    语句块n+1<br> 		    break;</p>
<p>}</p>
<p><strong>执行流程:</strong> <br> 		先计算表达式的结果 A ,使用A顺次的与对应的目标值进行比较,一旦发现有相等的目标值, 就停止比较, <br> 		执行对应的语句块, 再执行break跳出整个switch结构, 如果从上往下比较都没有目标值与A相等则执行 <br>		语句块n+1 结束switch <br><br><strong>要求:</strong> <br> 	表达式:  表达式的结果,在JDK1.1~1.4时代 表达式的结果的数据类型  只能是 char byte short int <br> 			 在JDK1.5~1.6时代 表达式的结果的数据类型  只能是 char byte short int  enum(枚举) <br> 			 在JDK1.7+时代 表达式的结果的数据类型  只能是 char byte short int  enum(枚举) ,String(字符串)<br><br><strong>目标值:</strong> <br> 		目标值的数据类型 与表达式结果的数据类型要匹配 <br> 		目标值 不能重复 <br><strong>代码演示:</strong><br> 根据键盘录入的数值1、2、3...7输出对应的星期一、星期二、星期三...星期日</p>
<div class="cnblogs_code"><pre class="brush:php;toolbar:false"> 1 public static void main(String[] args) { 2         //创建键盘录入对象 3         Scanner sc = new Scanner(System.in); 4          5         //接收数据 6         System.out.println("请输入一个数字(1-7):"); 7         int weekday = sc.nextInt(); 8          9         //switch语句实现选择10         switch(weekday) {11         case 1:12             System.out.println("星期一");13             break;14         case 2:15             System.out.println("星期二");16             break;17         case 3:18             System.out.println("星期三");19             break;20         case 4:21             System.out.println("星期四");22             break;23         case 5:24             System.out.println("星期五");25             break;26         case 6:27             System.out.println("星期六");28             break;29         case 7:30             System.out.println("星期日");31             break;32         default:33             System.out.println("你输入的数字有误");34             break;35         }    
36     }

循环结构:

同一件事反复做 , 反复执行同一片代码
循环的构成:
  初始化语句
  循环出口(条件)
  循环体
  循环增量

有三种 循环结构:
for 循环   while 循环   do...while循环
for循环:
语法格式:
for(初始化语句;条件;步进表达式){

  循环体
}

执行流程:
第一步: 初始化语句
第二步: 判断条件, 如果条件为真 则进入第三步 ,条件为假则进入第五步
第三步: 执行循环体
第四步: 执行步进表达式 进入第二步
第五步: 结束循环

代码演示:
统计“水仙花数”共有多少个
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

 1 public static void main(String[] args) { 2         //1.定义一个统计变量,初始值为0 3         int count = 0; 4          5         //2.使用for循环获取所有的三位数 6         for(int x=100; x<1000; x++) { 7             //3.拆分三位数的百位,十位,个位 8             int ge = x%10; 9             int shi = x/10%10;10             int bai = x/10/10%10;11             12             //4.利用公式判断这个三位数是否为水仙花数,如果是,统计变量++13             if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {14                 count++;15             }16         }17         18         //5.循环结束之后,打印统计结果19         System.out.println("水仙花数共有:"+count+"个");20     }

while 循环:

语法结构:

  初始化语句
  while(条件){
    循环体
    步进语句
 }

 执行流程:
 第一步: 初始化语句
 第二步: 判断条件, 如果条件为真, 则进入第三步,如果条件为假, 则进入第五步
 第三步: 执行循环体
 第四步: 执行步进语句, 再进入第二步
 第五步: 结束循环

do ... while循环
语法格式:  

初始化语句
do{
  循环体
  步进语句

}while(条件)

执行流程:
第一步: 初始化语句
第二步: 执行循环体
第三步: 执行步进语句
第四步: 判断条件,如果条件为真,进入第二步, 否则进入第五步
   第五步: 结束循环

三种循环的区别:
虽然可以完成同样的功能,但是还是有小区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,
就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,
就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,
能够提高内存的使用效率。
循环使用推荐for -- while -- do..while

跳转语句可以控制循环的执行:
有两种
break  : 在循环中使用的时候 表示结束当前循环  
  在switch语句中使用 表示跳出当前的switch结构

 continue: 在循环中使用, 表示结束本次循环 进行下一次循环
 跳转语句 脱离循环没有意义

 此篇就到这里了 本人将持续总结  从Java基础开始 一直到整个javaWeb开发所需的所有技术 都会进行总结 ,感兴趣的园友们可以持续关注 一起学习!!!

Atas ialah kandungan terperinci java中的流程控制语句示例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn