JAVA基础总结(三)JAVA流程控制语句 跳转控制语句

一、流程控制语句

       在程序执行的工程中,每一行代码的执行顺序都对程序的结果有着直接影响。所以我们要清楚的知道每一行代码的执行顺序,通过控制代码的执行顺序来实现我们想要的功能。
  • 流程控制语句的分类
    • 顺序结构
    • 选择结构
    • 循环结构

一. 顺序结构

       是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的 先后顺序,依次执行,程序中大多数的代码都是这样执行的。
       总的来说:写在前面的先执行,写在后面的后执行

二. 选择结构

       也被称为分支结构。
       选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
       简单来说就是,根据逻辑运算判断执行那一块的代码,整个过程只执行一次
       Java语言提供了两种选择结构语句
(1)if语句
(2)switch语句

(1)   IF语句

(1.1) IF语句第一种格式:

       if (关系表达式) {
       语句体
       }

关系表达式:通常都是布尔表达式,判断括号中的内容所得出的结果是 true 还是 false。
	public class IfDemo {
	    public static void main(String[] args) {
	        int i = 10;
	        if(i == 10) {
	            System.out.println("i等于10");
	        }
	   }
 }

IF语句第二种格式:

if (关系表达式) {
       语句体1;
}else if(关系表达式){
       语句体2;
}else{
       语句体3;
}
	//需求:键盘录入月份的值,输出对应的季节。
	//代码如下:
		import java.util.Scanner;
		
		public class IfTest {
		    public static void main(String[] args) {
		        //创建键盘录入对象
		        Scanner sc = new Scanner(System.in);    
		        //录入数据
		        System.out.println("请你输入一个月份:");
		        int month = sc.nextInt();
		
		        if(month<1 || month>12) {
		            System.out.println("你输入的月份有误");
		        }else if(month>=3 && month<=5) {
		            System.out.println("春季");
		        }else if(month>=6 && month<=8) {
		            System.out.println("夏季");
		        }else if(month>=9 && month<=11) {
		            System.out.println("秋季");
		        }else {
		            System.out.println("冬季");
		        }
		    }
		}
       输出结果:根据你键盘的输入值的大小会得到相应的结果,比如输入3,结果为:春季。
       科普:实现键盘输入的过程
       1、导包:导包import java.util.Scanner;
        2、创建键盘录入对象:Scanner sc = new Scanner(System.in);
       3、通过对象获取数据:int x = sc.nextInt();

(2) switch语句

  • switch语句格式:
		switch(表达式) {
          case1:
            语句体1;
            break;
            case2:
            语句体2;
            break;default:    
            语句体n+1;
            break;
    }
执行流程
       第一步,计算出表达式的值
       第二步,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
       最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后将程序结束。

Demo代码示例:

//练习:使用scanner键盘输入,通过键盘输入的内容来判断今天是星期几。
	
	import java.util.Scanner;
	
	public class SwitchDemo {
	    public static void main(String[] args) {
	        //创建键盘录入对象
	        Scanner sc = new Scanner(System.in);
	
	        //控制键盘录入数据
	        System.out.println("请输入一个数据(1-7):");
	        int week = sc.nextInt(); //3
	
	        //switch判断语句
	        switch(week) {
	            case 1:
	                System.out.println("星期一");
	                break;
	            case 2:
	                System.out.println("星期二");
	                break;
	            case 3:
	                System.out.println("星期三");
	                break;
	            case 4:
	                System.out.println("星期四");
	                break;
	            case 5:
	                System.out.println("星期五");
	                break;
	            case 6:
	                System.out.println("星期六");
	                break;
	            case 7:
	                System.out.println("星期日");
	                break;
	            default:
	                System.out.println("你输入的数据有误");
	                break;
	        }
	    }
	}
输出结果:根据你键盘的输入值的大小会得到相应的结果,比如输入4,结果为:星期四。

三.循环结构

	循环结构:相同的操作执行多次,只到满足条件为止。
Java语言提供了两种循环结构语句
1. for循环
2. while循环
3. do…while循环

1. for循环

for循环语句是支持迭代的一种通用结构,是最有效最灵活的循环结构。
	//for循环语句格式:
	
	for(初始化语句;布尔表达式;迭代){
				循环体语句;
	}
执行流程:1.执行for循环代码时,程序会先执行初始化语句。
                   2.然后执行布尔表达式,看结果是true还是false。如果是true,程序继续执行循环,如果是false,循环结束,跳出循环。
                   3.然后执行循环体语句
                   4.在执行控制条件语句,有就是迭代部分,以此循环,直到布尔表达式部分结果为false时跳出循环
  • 练习1,分别计算0到100之间的奇数和偶数的和
		public class For01{
		
	    public static void main(String[] args) {
	        //练习1,分别计算0到100之间的奇数和偶数的和
	
	        int oddSum = 0;//奇数
	        int evenSum = 0;//偶数
	        
	        //    初始表达式; 布尔表达式; 迭代
	        for (int i = 0; i < 100; i++) {
	
	            if(i%2!=0){  // i除2不等于0,所以条件是奇数
	                oddSum+=i;
	            }else if(i%2==0){  // i除2等于0,所以条件是奇数
	                evenSum+=i;
	            }
	        }
	        System.out.println("奇数相加总和:"+oddSum);
	        System.out.println("偶数相加总和:"+evenSum);
	    }
	  }

输出结果:奇数相加总和:2500,偶数相加总和:2450

  • 练习2,输出0至1000之间能被5整除的数字,并且每行输出三个
		public class For02{
		
		    public static void main(String[] args) {
		        //练习2,输出0至1000之间能被5整除的数字,并且每行输出三个
		        
		        for (int i = 0; i <= 1000; i++) {
		            if(i%5==0){
		                System.out.print(i+"\t");//\t 空格
		            }
		            if(i%(5*3)==0){
		                System.out.print("\n");
		                //换行 和System.out.println();一个意思
		            }
		        }
		    }
		}
  • 练习3,for循环嵌套实现九九乘法表
/**
	 控制台输出九九乘法表
		 1*1=1	
		 1*2=2	2*2=4	
		 1*3=3	2*3=6	3*3=9	
		 1*4=4	2*4=8	3*4=12	4*4=16	
		 1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
		 1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
		 1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
		 1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
		 1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
**/

	  public static void main(String[] args) {
		
		//如何使用For循环打印出九九乘法表
		
		        //问题拆分
		       //第一步打印第一列
		        for (int i = 1; i <= 9; i++) {
		            System.out.println(1+"*"+i+"="+1*i);
		        }
		
		        System.out.println("-----------------------------------------------");
		
		        //第二步在使用一个for循环,循环第一步产生的结果
		
		            for (int i = 1 ; i <= 9; i++) {
		                for (int j = 1; j <= i ; j++) {
		                System.out.print(j+"*"+i+"="+j*i+"\t");
		            }
		                System.out.println();
		        }
		
		/*
		 得出结论:将此类问题拆分之后,第一步使用一个for循环,将乘法表中第一排循环打印出来得出:
		    1*1=1
		    1*2=2
		    1*3=3
		    1*4=4
		    1*5=5
		    1*6=6
		    1*7=7
		    1*8=8
		    1*9=9
		 第二步,因为第一个循环只能遍历条件控制语句中限制的内容,无法完成乘法表全部的内容,
		 所以需要使用第二个for循环,这里可以理解为当第一个循环循环时会和第二个循环一同遍历,
		 第一个循环遍历九九乘法表的列,第二个循环遍历九九乘法表的行
		* */
    }

2.while循环语句

	while循环语句格式:
	
	 while(判 断条件语句) {
	         循环体语句;
	   }
while循环和for循环可以等价转换,但还是有些小区别的:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
  • 练习:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
    请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
			public class While{
	    public static void main(String[] args) {
	        //定义一个统计变量,默认值是0
	        int count = 0;
	        //最高山峰是珠穆朗玛峰:8848m这是最终的厚度
	        //我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
	        //为了简单,我把0.01变成1,同理8848就变成了884800
	        int end = 884800;
	        int start = 1;
	        while(start<end) {
	    //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
	            count++;
	            //折叠一次有什么变化呢?就是厚度是以前的2倍。
	            start *= 2;
	            System.out.println("第"+count+"次厚度是"+start);
	        }
	
	        //输出统计变量。
	        System.out.println("要叠"+count+"次");
	      }
    	}

3.do…while循环语句

		dowhile循环语句格式:

		do {
		         循环体语句;
		   }while((判 断条件语句);
do…while循环语句与其他两种循环语句的区别是什么?
区别:do…while循环至少会执行一次循环体。
for循环和while循环只有在布尔表达式条件成立的时候才会去执行循环体
注意: 写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
while(true){}和for(;;){}都是死循环
		public class DoWhile{
		    public static void main(String[] args) {
		       int i = 50;
		
		        do {
		            System.out.println("多读书,多看报,少吃零食,多睡觉");
		            i++;
		        } while(i<60);
		            System.out.println("说的对啊!");
		    }
		}

二、跳转控制语句

在某个循环执行到某一步的时候想结束循环
Java提供了break,continue和return来实现控制语句的跳转和中断。

break 中断

应用场景:

  • 可用于switch结构(选择结构)中
  • 在循环中使用(循环中如果有if条件判断的情况下)

作用:

  • 满足条件之后跳出循环体

IF:

		public class Xunhuan {
			public static void main(String[] args) {
				int age =18;
				for(int i=1;i<18;i++) {
					if(i%2==0) {
						System.out.println("1-18之间的第一个偶数是:"+i);
						break;//符合条件之后,终止“整个循环体。换句话说:跳出循环体”
					}
				}
			}
		}

Switch:

			  public  void Switch(){
			        Scanner can = new Scanner(System.in);
			        int in = can.nextInt();
			        switch(in) {
			            case 1:
			                System.out.println("星期一");
			            break;
			            case 2:
			                System.out.println("星期二");
			                break;
			            case 3:
			                System.out.println("星期三");
			                break;
			            case 4:
			                System.out.println("星期四");
			                break;
			            case 5:
			                System.out.println("星期五");
			                break;
			            case 6:
			                System.out.println("星期六");
			                break;
			            case 7:
			                System.out.println("星期天");
			                break;
			            default:
			                System.out.println("我也不知道啊");
			        }
			    }

continue 继续

应用场景:

  • 在循环中使用

作用:

  • 跳出本次循环,进入下一次循环
  • 满足条件之后,继续执行循环,直到布尔表达式为false为止
		public class Xunhuan {
			public static void main(String[] args) {
				int age =18;
				for(int i=1;i<18;i++) {
					if(i%2==0) {
						System.out.println("1-18之间的第一个偶数是:"+i);
						continue;//结束本次循环,跳到下一次循环
					}
				}
			}
		}
  • return 返回
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值