Java学习记录------程序流程控制

顺序结构

程序从上到下逐行地执行,中间没有任何判断和跳转
Java中定义成员变量时采用合法的向前引用。(程序句子顺序不能变)

循环语句功能

在某些条件满足的情况下,反复执行特定代码的功能

循环语句的四个组成部分

初始化部分(init_statement)
循环条件部分(test_exp)
循环体部分(body_statement)
迭代部分(alter_statement)

循环语句的分类

for循环
while循环
do/while循环

一、for循环

语法格式
for(初始化表达式1;布尔值测试表达式2;更改表达式){
语法或语句块3}

例:
1.

for(int I = 1;I <= 100;i++){
  System.out.println(i);
}
int result = 0;
    	for(int i =1;i<=100;i++) {
    		result+=i;
    	}System.out.println("result ="+ result);//0到100的累加

例题:编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行打印输出“baz”

public class FooBizBaz{
    public static void main(String[] args) {
    	for(int i = 1;i<=150;i++){
            System.out.print(i);
            if(i%3==0){
                System.out.print(" foo");
            }
            if(i%5==0){
                System.out.print(" biz");
            }
            if(i%7==0){
                System.out.print(" baz");
            }
            System.out.println("");
                       
        }
     
   }
    	  
}
分支结构

根据条件,选择性的执行某段代码
有if else和switch两种分支语句
一、if else
在这里插入图片描述
1.

int i = 2;
   	if (i == 1) {
		System.out.println(true);
   	}else {
   		System.out.println(false);
    	}
    	int i = 3;
   	if(i % 2 ==0) {
   		System.out.println("偶数");
    	}else {
    		System.out.println("奇数");
    	}
  1.  int i = 2;
     	if(i == 1) {
     		System.out.println("星期一");
     	}else if(i == 2) {
     		System.out.println("星期二");
     	}else if(i == 3) {
     		System.out.println("星期三");
        	}
    

如果是数字1,输出星期一,2输出星期二,3输出星期三 ,如果不是1,2,3其中的数字,输出不知道

   	int i =5;
    	if(i == 1) {
    		System.out.println("星期一");
    	}else if(i == 2) {
    		System.out.println("星期二");
    	}else if(i == 3) {
    		System.out.println("星期三");
    	}else {
    		System.out.println("不知道");
    	}
//if-else可以嵌套使用,就是if-else里可以有多个if-else
//if-else内可以写任何代码段,包括if-else
    	int x = 1; //随意赋值
    	int y =3; //随意赋值
    	if(x > 2) {//判断x的值,x>2,走if分支,不是则走else分支
    		if(y > 2) {//判断y的值,y>2,走if分支,不是则走else分支
    			System.out.println(x + y);
    			System.out.println("good");
    		}else {//第二个判断y的else分支
    			System.out.println("x is "+ x);
    		}
    	}else {//第一个判断x的else分支
    		System.out.println("bad");
    	}
    	
    }
}

二、switch

Switch语句有关规则

switch(表达式)中表达式的返回值必须是下述几种类型之一:byte,short,char,int,枚举,String;
case子句中的值必须是常量,且所有的case子句中的值应是不同的;
default字句是可任选的,当没有匹配的case时,执行default
break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
break时必须写的,不然程序就会从case匹配到的位置开始一直往下执行到结尾

1.switch(变量){
case(常量1):
语句1;
break;
case(常量2):
语句2;
break;
……
case(常量n):
语句n;
break;
default:
语句;
break;
}

例:

String str = "1";
     switch(str) {
     case"a":
    	 System.out.println("a");
    	 break;
     case"bcd":
    	 System.out.println("bcd");
         break;
     default:
    	 System.out.println("unknown");
    	 }

三、while
whlie语法格式
【初始化语句】
while(布尔值测试表达式){
语句或语句块;
【更改语句;】
}
例:

int res = 0; 
    int k = 1;
     while(k <= 100) {
    	 if(k % 2 == 0) {
    	 res += k;}
    	 k++;
     }System.out.println(res);

do-while语法格式
[初始化语句]
Do{
语句或语句块;
[更改语句;]
}while(布尔值测试表达式);
例:

	int m = 1;	
    	do {
    	System.out.println(m);
    	m++;
    	}while(m <= 100);//循环输出1到100的数字
循环结构

根据循环条件,重复性的执行某段代码。
有while、do while、for三种循环语句
注:JDK1.5之后提供了foreach循环,方便的遍历集合、数组元素

嵌套循环

将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do…while均可以作为外层循环和内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内循环,才可结束外层的当次循环,开始下一次的循环。
设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行n*m=nm次。(注意在写嵌套循环的时候,要尽量保证外层循环次数小于内层的循环次数)
例题:1.

//九九乘法表
	for(int i = 1;i <= 9;i++) {
    		for(int j = 1;j <= i;j++) {
    			System.out.print(i + " * " + j + " = " + (i*j) + " ");    			
    		}System.out.println();
    	}

2.1-100之间的所有质数

//1-100之间的所有质数(质数是一个大于1的自然数,并且只能被1和其本身整除)
   for(int i = 1;i <= 100;i++) {
   	int k = 0;
   	for(int j =1;j <= i;j++) {
   		if(i % j == 0) {
   			k++;
   		}
   	}
   	if(k == 2) {//如果循环次数为两次,当前大循环的i的值就是质数
   		System.out.println(i);
   	}
     }	

例:

for(int i = 0; i < 4; i++) {//每一次循环都会执行大括号里面所有代码
    	System.out.println("大循环---"+ i );
    		for(int j = 0; j<2; j++) {
    		   System.out.println("大循环---"+ i +"小循环---" + j);
    		   }
    	}

输出结果:
大循环—0
大循环—0小循环—0
大循环—0小循环—1
大循环—1
大循环—1小循环—0
大循环—1小循环—1
大循环—2
大循环—2小循环—0
大循环—2小循环—1
大循环—3
大循环—3小循环—0
大循环—3小循环—1

特殊流程控制语句

一、break 语句
break语句用于种植某个语句块的执行
{ ……
break;
……
}
break终止当前所在的循环
int i = 1;
switch(i) {
case 1:
break;//终止case
case 2:
break;//终止case
case 3:
break;//终止case
}

例:

	for(int j = 0;j < 8;j++) {
    		for(int i = 0;i < 9;i++) {
    			if(i > 6) {
    				break;//break终止倾斜区域的循环
    			}System.out.println(i);
    		}
      }

二、continue
continue语句用于跳过某个循环语句块的一次执行
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
continue是对当前所在的循环起作用,结束当前这次循环,当前循环的下面的代码不执行,直接进入下一次循环

continue语句用法举例

public class ContinueTest{
public static void main(String args[]){
for(int i = 0;I < 100;i++){
     if(i%10==0)
        continue;
System.out.println(i);
        }
    }
}

例:

for(int i = 0;i < 9;i++) {
    		if(i % 2 == 0) {
    			continue;//结束当前这次循环,直接进入下一循环
    		}System.out.println(i);
    	}

三、return
return并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被破解

与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

    	for(int i = 0;i < 2; i++) {
    		for(int j = 0;j < 2; j++) {
    			if(i == 1) {
//    				return;
//看起来和使用break感觉一样,但是实际上,return是把整个方法结束了,break只是终止当前的循环
    			    break;
    			}
    		}System.out.println(i);
    	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值