判断与循环语句

本章目标
掌握程序的三种结构
掌握选择语句的使用
掌握循环语句的使用
掌握break、continue关键字的使用

 

程序的结构
一般来说程序的结构包含有下面三种:
1、顺序结构
2、选择结构
3、循环结构

 

顺序结构
程序至上而下逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾

 

选择结构
选择结构是根据条件的成立与否,再决定要执行哪些语句的一种结构


 

验证选择结构

public class IfDemo {
	public static void main(String[] args) {
		int x = 3;//定义整型变量 x
		int y = 10;//定义整型变量 y
		System.out.println("====== 比较开始 ======");//输出信息
		if(x>y){//判断 x 是否比 y 大
			System.out.println("x 比 y 大!");//输出信息
		}
		if(x<y){//判断 x 是否比 y 小
			System.out.println("x 比 y 小!");//输出信息
		}
		System.out.println("====== 比较结束 ======");//输出信息
	}
/*结果:
 * ====== 比较开始 ======
 * x 比 y 小!
 * ====== 比较结束 ======
 * */
}

 

循环结构
循环结构则是根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就称为循环主体。

 

if语句
在前面简单地介绍了if的用法。要根据判断的结构来执行不同的语句时,使用if 语句就是一个很好的选择,它会准确地检测判断条件成立与否,再决定是否要执行后面的语句。
if (判断条件){
  语句1 ;
  …
  语句2 ;
  }

 

if...else语句
当程序中存在含有分支的判断语句时,就可以用if...else语句处理。当判断条件成立,即执行if语句主体;判断条件不成立时,则会执行else后面的语句主体。if…else语句的格式如下:
if (判断条件){
  语句主体1 ;
  }else{
  语句主体2;
  }

 

通过if..else语句,判断一个数字是奇数还是偶数

public class IfElseDemo {
	public static void main(String[] args) {
		int x=3;//定义整型变量 x
		if(x % 2 ==1){//判断余数是否为 1 
			System.out.println("x 是奇数!");//如果余数为 1 表示奇数
		}else{
			System.out.println("y 是偶数!");//如果余数为 0 表示偶数
		}
	}
/*结果:
 * x 是奇数!
 * */
}

 

三目运算符

 

使用三目运算符求出两个数字中的最大值

public class MaxDemo {
	public static void main(String[] args) {
		int max=0;//定义变量保存最大值
		int x=3;//定义整型变量 x
		int y=10;//定义整型变量 y
		max=x>y?x:y;//通过三目运算符求最大值
		System.out.println("最大值为:"+max);//输出求出的最大值
	}
/*结果:
 * 最大值为:10
 * */
}

 

if…else if…else语句
如果需要在if..else里判断多个条件时,就需要if..else if … else语句了,其格式如下:
if (条件判断1){
  语句主体1 ;
  }else if (条件判断2){
  语句主体 2 ;
  }
  …  // 多个else if()语句
  else{
  语句主体3 ;
  }

 

使用语句

public class MoreIfElseDemo {
	public static void main(String[] args) {
		int x=3;//定义整型变量 x
		if(x == 1){//判断 x 的值是否为1
			System.out.println("x 的值是1!");//输出信息
		}else if(x == 2){//判断 x 的值是否为2
			System.out.println("x 的值是2!");//输出信息
		}else if(x == 3){//判断 x 的值是否为3
			System.out.println("x 的值是3!");//输出信息
		}else{//其他值
			System.out.println("x 的值不是1、2、3中的一个!");//输出信息
		}
	}
/*结果:
 * x 的值是3!
 * */
}

 

switch语句
要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,语法格式:
switch (表达式){
  case 选择值1 :  语句主体 1 ;          break ;
  case 选择值2 :  语句主体 2 ;                   break ;
  …….
  case 选择值n :  语句主体 n ;                  break ;  default:    语句主体 ;
  }

执行流程

 

while循环
while是循环语句,也是条件判断语句。当事先不知道循环该执行多少次的时,就要用到while循环。while循环的格式如下:
while (循环条件判断){
  语句1 ;
  语句2 ;
  …
  语句n ;
  循环条件更改 ;
  }

 

使用while循环,进行累加操作

public class WhileDemo {
	public static void main(String[] args) {
		int x=1;//定义整型变量 x
		int sum = 0;//定义整型变量 sum,保存累加结果
		while(x <= 10){//判断循环条件
			sum += x;//执行累加操作
			x++;//修改循环条件
		}
		System.out.println("1 --> 10 累加结果为:"+sum);//输出结果
	}
/*结果:
 * 1 --> 10 累加结果为:55
 * */
}

 

do…while循环
do…while循环也是用于未知循环执行次数的时候,而while循环及do…while循环最大不同就是进入while循环前,while语句会先测试判断条件的真假,再决定是否执行循环主体,而do…while循环则是“先做再说”,每次都是先执行一次循环主体,然后再测试判断条件的真假,所以无论循环成立的条件是什么,使用do…while循环时,至少都会执行一次循环主体,语句格式:
do{
  语句1 ;
  语句2 ;
  ….
  语句n ;
  循环条件改变 ;
  }while (循环条件判断);

 

使用do…while循环完成之前的累加操作

public class DoWhileDemo {
	public static void main(String[] args) {
		int x=1;//定义整型变量 x
		int sum = 0;//定义整型变量 sum,保存累加结果
		do{//do .... while 至少先执行一次
			sum += x;//执行累加操作
			x++;//修改循环条件
		}while(x <= 10);//判断循环
		System.out.println("1 --> 10 累加结果为:"+sum);//输出结果
	}
/*结果:
 * 1 --> 10 累加结果为:55
 * */
}

 

for循环
对于while和do…while两种循环来讲,操作时并不一定非要明确的知道循环的次数,而如果开发者已经明确的知道了循环次数的话,那么就可以使用另外一种循环语句——for循环。 格式如下:
for (赋值初值;判断条件;赋值增减量){
  语句1 ;
  ….
  语句n ;
  }

 

使用for循环完成累加操作

public class ForDemo {
	public static void main(String[] args) {
		int sum=0;//定义变量保存累加结果
		for(int x=1; x<=10; x++){//使用 for 循环
			sum +=x;//执行累加操作
		}
		System.out.println("1 --> 10 累加结果为:"+sum);//输出结果
	}
/*结果:
 * 1 --> 10 累加结果为:55
 * */
}

 

循环的嵌套

public class ForNestedDemo {
	public static void main(String[] args) {
		for(int i=1; i<=9; i++){
			for(int j=1; j<=i; j++){
				System.out.print(i +"*"+j +"=" + (i*j) +"\t");
			}
			System.out.print("\n");
		}
	}
/*结果:
 * 1*1=1	
 * 2*1=2	2*2=4	
 * 3*1=3	3*2=6	3*3=9	
 * 4*1=4	4*2=8	4*3=12	4*4=16	
 * 5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
 * 6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
 * 7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
 * 8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
 * 9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
 * */
}

 

break语句
break语句可以强迫程序中断循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳出当前层的循环。以下图的for循环为例,在循环主体中有break语句时,当程序执行到break,即会离开循环主体,而继续执行循环外层的语句。

break语句格式
for (初值赋值;判断条件;设增减量){
  语句1 ;
  语句2 ;
                 …
  break ;
  …     // 若执行break语句,则此块内的语句将不会被执行
  语句n ;
}
  …

 

使用break

public class BreakDemo {
	public static void main(String[] args) {
		for(int i=0; i<10; i++){//使用 for 循环
			if(i==3){//如果 i 的值为3,则退出整个循环
				break;//退出整个循环
			}
			System.out.println("i = "+i);//打印信息
		}
	}
/*结果:
 * i = 0
 * i = 1
 * i = 2
 * */
}

 

continue语句
continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。以下图的for循环为例,在循环主体中有continue语句,当程序执行到continue,即会回到循环的起点,继续执行循环主体的部分语句。

 

continue语句格式
for (初值赋值;判断条件;设增减量)
{
  语句1 ;
  语句2 ;
  …
  continue
  …  // 若执行continue语句,则此处将不会被执行
  语句n;
}
  ….

 

将之前的程序修改为continue,观察运行结果

public class ContinueDemo {
	public static void main(String[] args) {
		for(int i=0; i<10; i++){//使用 for 循环
			if(i==3){//如果 i 的值为3,则退出该次循环
				continue;//退出一次循环
			}
			System.out.println("i = "+i);//打印信息
		}
	}
/*结果:
 * i = 0
 * i = 1
 * i = 2
 * i = 4
 * i = 5
 * i = 6
 * i = 7
 * i = 8
 * i = 9
 * */
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值