Java笔记_day03(基础知识)流程控制+循环结构

流程控制:

顺序结构
程序是从上往下进行加载,按照代码的编写顺序进行执行。

选择结构(分支结构)
if else 语句
1. if 单支情况

if语句的格式:
if (布尔类型表达式/布尔类型值) {
// 语句体。。。。
}
if语句(单支)的执行流程:
首先判断布尔类型表达式看它的结果是false还是true
如果是true就执行{}里面的方法体内容
如果是false就不执行{}里面的方法体内容,程序往后加载。

        **2.if else 双支情形**	   
            格式:				
                       if (布尔类型表达式) {						
                                  // 语句体内容1;		
          		   } else {		
           			     // 语句体内容2;
    		   } if else 多支的执行流程:
    		   			首先判断布尔类型表达式看它的结果是true还是false
    		   	                如果是true,就执行语句体内容1
    		   	                如果是false,就执行语句体内容2


        **3.if .... else if .... else语句  多支情形**
        	格式:			
        	       if(布尔类型表达式1) {
        	                       // 方法体内容1。。。。         
        	       } else if (布尔类型表达式2) {	
        	     		      // 方法体内容2.。。。。。
                   }           
                   .........          
                   } else if (布尔类型表达式n) {
                     	     // 方法体内容n。。。。           
                   } else {            	
                                 // 方法体内容n+1。。。。            
                   }

          **执行流程:**

           	 首先判断布尔类型表达式1看其结果是true还是false           
           	 如果是true,就执行方法体内容1           
           	 如果是false,就继续判断布尔类型表达式2,看其结果是true还是false            
           	 如果是true,就执行方法体内容2            
           	 如果是false,就继续判断布尔类型表达式......,看其结果是true还是false           
           	 ..........           
           	 如果以上所有的布尔类型表达式都为false,最后执行else{}里面的方法体内容n+1。

  **4.if .. if .. else ...else语句  嵌套情形**
       格式:
                if (布尔类型表达式1) {				
                         // 方法体内容1    			
                          。。。。					
                        if (布尔类型表达式2){							
                                   // 方法体内容2 							
                                    。。。。。。                     
                         } else {								
                              // 方法体内容3								
                                。。。。。                     
                         }           
                } else {					
                		// 方法体内容4									
                		。。。。。。           
                		}
     **执行流程:**			
     	                首先判断布尔类型表达式1,看其结果是true还是false
     	                如果是true,就执行方法体内容1,在继续判断布尔类型表达式2,看其结果是true还是
     	                 false,如果是true,就执行方法体内容2. 
     	                如果是false,就执行方法体内容3。。。。               
     	                如果是false,就执行方法体内容4,之后加载后面的程序。

If语句和三目运算符的互换

int num01 = 10;
int num02 = 20;
// 定义一个变量,保存num01和num02的最大值
int c;
if (num01 > num02) {
c = num01;
} else {
c = num02;
}
// 上面的语句我们也可以使用三目运算符
c = num01 > num02 ? num01 : num02;

switch case语句
格式:
switch(表达式/变量) {
case 常量值1:
// 语句体内容1
break;
case 常量值2:
// 语句体内容2
break;

default:
// 语句体n
break;
}

执行流程:

		首先计算出表达式中的值     
                    其次,依次和case后面的常量值做比较,一旦有对应的值,就会执行相应的语句体内容,           
                    在执行的过程中,遇到break就会结束switch case语句。          
                    最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体内容,然后switce case语句结束。                                                                        注 意:在switch语句中,表达式的数据类型,可以是byte/short/int/char/enum(枚举),JDK1.7之后可以接收字符串类型。

case穿透性
在switch语句,如果case后面的break省略掉,将会出现穿透现象。不会判断后面的case情形值,直接加载后面的case中的方法体内容,直到遇到break结束。

循环结构 【重点】

【三种基本循环】for、while、do-while
循环结构组成部分:一般可以分成4部分
1.初始化语句:在循环最初开始时,需要定义一个初始化的变量,而且只会定义一次。
2.条件判断(结束条件):如果条件成立满足,进入循环,如果条件不满足,则退出循环
3.循环体内容: 重复要做的事情内容,可能包含很多条语句(事情是有规律的)
4.迭代语句(步进语句):每次循环结束之后需要执行步进语句(跌代语句),对初始化的变量做步进(迭代)。
for循环语句结构
格式:
for(1.初始化语句;2.条件判断表达式;4.迭代语句) {
// 3.循环体内容
}

执行流程:

              执行顺序: 1-->2-->3-->4-->2-->3-->4-->2--->3-->4......2不满足为止。                
              1 负责循环变量的初始化               
               2 负责判断是否满足循环条件,不满足退出循环                
               3.负责执行具体的语句(逻辑功能)                
               4.负责变量的迭代

while循环语句
格式:
// 1.初始化语句;
while(2.判断条件) {
// 3.循环体内容
// 4. 步进语句;
}

执行流程:
执行顺序:1–>2–>3–>4–>2–>3–>4–>2–>3—>4—>…2不满足为止
1负责循环变量初始化
2负责判断是否满足循环条件,不满足则跳出循环
3负责执行具体语句,实现某个功能。
4迭代循环变量

do-while循环
格式:
// 1. 初始化语句
do {
// 3.循环体内容
// 4.迭代语句
} while (2.判断条件);

执行流程:
执行顺序: 1–>3—>4—>2—>3—>4---->2---->3—>4—>…2不满足为止
1负责定义循环变量,并且进行初始化
2负责判断是否满足循环条件,不满足则跳出循环
3负责执行具体语句,实现某个功能
4迭代循环变量备注:无条件执行一次循环体内容,即使判断条件是不满足也依然循环一次,这样的循环是有风险的,不建议使用。

循环语句的区别
for和while的区别
控制语句中所涉及到的循环变量,当for循环结束后,定义的循环变量不能再被访问到,而while循环结束后依然可以被访问到。如果不继续使用循环变量,建议使用for循环,因为for循环结束后,循环变量就会从内存中消失,能够提高内存的使用效率。
在已知循环次数的情况下,建议使用for循环,当循环次数不确定时使用while循环。

跳出语句

              break、continue两个语句

break
使用情形:终止switch语句或者循环语句
备注:离开了使用场景对于break来说没有意义。

public static void main(String[] args) {
// 使用break语句
// 跳出循环语句
// 10以内的偶数和
int sum = 0;
for (int i = 0; i <= 100 ; i ++) {
// 跳出情形 i > 10
if (i > 10) {
break;
}
if (i % 2 == 0) {
sum += i;
}
}
// 跳出switch case语句
// 季节 四个季节
String season = “春季”;
switch (season) {
case “春季”:
System.out.println(“万物复苏的时候”);
break;
case “夏季”:
System.out.println(“烈日炎炎的时候”);
break;
case “秋季”:
System.out.println(“丰收的时候”);
break;
case “冬季”:
System.out.println(“寒冷下雪的时候”);
break;
default:
System.out.println(“跳出三界外,不在五行中”);
break;
}
}

continue
使用情形:结束本次循环,继续下一次循环

public static void main(String[] args) {
// continue
// 求一下100以内的偶数和 2+4+6+8+10+…+100
int sum = 0;
for (int i = 1; i <= 100; i++) {// i= 1 2 3 4 5 6 7 8 9 10 …
// 使用场景 奇数跳过去,不参与累加和
if (i % 2 != 0) {// i % 2
continue;
}
sum += i;
}
}

扩展知识点

1.死循环	    
       概念:循环中条件永远都是true,死循环是永不结束的循环。 例如:while(true){}.              
       死循环一般要和跳出语句结合。
2.循环嵌套		
       概念:是指一个循环的循环体是另一个循环。比如说for循环中内置了一个for循环,就是循环嵌套。                   
       循环的次数= 外部循环的次数 * 内部循环的次数

格式:
for (1.初始化语句;2.判断语句;4.迭代语句) {
// 3.循环体内容

for(5.初始化语句;6.判断语句;8.迭代语句) {
// 7.循环体内容
}
}

执行流程
执行流程:1—>2—>3—>5—>6—>7—>8—>6—>7—>8---->…6不满足为止(跳出循环) - —>4—>2---->3---->5—>6---->7---->8---->6---->7---->8---->…6不满足为止(跳出循环) - —>…2不满足为止(结束整个循环),加载外层for循环后面的语句。
外循环一次,内循环多次。

public static void main(String[] args) {
             // 使用场景
             // 打印38长方形 长为3,宽为8
             /

                  ******** 
                  ********
                  ********
              /
             // 使用循环嵌套技术来实现
             // 外循环3次,内循环8次
             for (int i = 0; i < 3;i++) {
                 for (int j = 0; j < 8 ; j++) {
                     // 输出
   println("")---->先打印内容再换行
                     System.out.print("
");
                 }
                 System.out.println();// 只换行不输出内容。
             } 
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值