程序里面的流程控制

一、顺序结构

代码从上往下依次执行。

程序的入口始终是main方法。

 

二、分支结构

2.1. if

语法

  1. 只有一个if

if (条件)

{

//当条件为true的时候执行大括号里面的代码

}

 

2.有一个if同时有一个else

if (条件)

{

//当条件为true的时候执行大括号里面的代码

}

else

{

//当条件为false的时候执行大括号里面的代码

}

 

3.有一个if,并且有多个else if

if (条件1)

{

//当条件1true的时候执行大括号里面的代码

}

else if (条件2)

{

//当条件2true的时候执行大括号里面的代码

}

else if (条件3)

{

//当条件3true的时候执行大括号里面的代码

}

 

4.有一个if,并且有多个else if,同时有一个else结束分支

if (条件1)

{

//当条件1true的时候执行大括号里面的代码

}

else if (条件2)

{

//当条件2true的时候执行大括号里面的代码

}

else if (条件3)

{

//当条件3true的时候执行大括号里面的代码

}

else

{

}

if是必须的,else可选的,但是最多只能出现一次;else if可选的,可以出现0N次。

注意点:

1.如果条件符合的时候,大括号里面的执行语句只有一句,那么可以省略大括号,但不推荐省略。

if ( age > 10 )

{

System.out.println("此人已经大于十岁");

}

等同于

if ( age > 10 )System.out.println("此人已经大于十岁");

 

2.else本身相当于也是一个条件,当前面所有的ifelse if都不为true的时候,执行else里面的。相当于是对前面所有的条件取反。

 

3.任何情况下,一个if分支里面,只能有其中的一个分支被执行。并且其中一个条件已经为true,那么后面的其他条件不会再进行判断。

 

4.把范围小的条件放到前面。

大于的时候,条件越大的放到越前面;小于的时候,条件越小的放到越前面。

 

2.2. switch (开关)

语法

switch ( <变量 |表达式> )

{

case 1 :

//执行语句

[break;]

 

case 2 :

//执行语句

[break;]

case ... :

[default:]

[default里面的执行语句]

}

 

注意点:

1.switch只能判断圆括号里面的值,和case里面的值是否相等,相等执行case里面的代码。

这些值的类型只能是byteshortintcharJava 5以后支持 String、枚举

 

2.switch里面,当一个case满足条件的时候,就会开始执行里面的执行语句。

如果没有遇到break,直接会一直执行到switch结束;遇到break结束switch

建议习惯性写上break,避免多个case同时被执行。

 

3.如果所有的case都不匹配,直接执行default,如果没有default,就直接结束switch

 

4.圆括号里面的类型和case的类型必须是相同的

 

三、循环结构

循环的三个要素

循环条件

循环体

循环计数器

 

3.1 while循环

语法

//需要在外面定义循环计数器

while(循环条件)

{

//循环体,任意的执行语句,包括if、循环之类的

}

注意点

1.循环条件永远比循环体多执行一次

2.循环体可能一次都不执行,但是循环条件最少会执行一次

publicclass TestDoWhile

{

publicstaticvoid main(String[] aregs)

{

/* int i = 0;

1,把i的值带入表达式

    得到表达式i < 100,并不进行比较运算

2.执行i的自加

    i = i + 1

3.执行比较运算

    i < 100*/

do

{

System.out.println("循环体输出: " + i);

}

while( i++ < 10 );

 

System.out.println("循环后: " + i);

}

}

 

3.2 do while循环

语法

do

{

//循环体

}

while(条件);

注意点:

在执行循环条件之前,必须先执行一次循环体。循环体最少会执行一次。

循环体和循环条件的执行次数是一样的。

 

3.3 for循环

for( [初始语句] ; [循环条件] ; [迭代语句] )

{

//循环体

}

for循环和while循环可以百分百转换,没有任何区别。

 

3.4嵌套循环

在循环的内部有循环,内部的循环如果还未执行完,外部的循环会等待内部循环的完成。

注意:

内部循环可以访问外部循环的变量;外部循环不能访问内部循环定义的变量。

 

循环控制的关键字

continue : 继续

忽略当前循环、本次的剩余执行语句,进行下一次循环。

 

break : 终止

终止当前循环

 

return : 返回

结束当前方法

 

嵌套循环里面使用continuebreak

默认情况下,只能影响到当前循环

可以给循环加上标签,然后continue或者break的后面带上要影响的循环的名字(标签)

publicclass TestNestedLoopContinue

{

publicstaticvoid main(String[] args)

{

for(int i = 0; i < 3; i++)

{

for(int j = 0; j < 5; j++)

{

 

if( j == 3 )

{

System.out.println("continue");

//continue影响到内层循环

continue;

}

System.out.println("内层: " + j);

}

System.out.println("外层: " + i);

}

 

System.out.println("=================================");

 

// XXXX表示给for循环加一个标签

//冒号后面跟着循环就可以了

XXXX:for(int i = 0; i < 3; i++)

{

for(int j = 0; j < 5; j++)

{

if( j == 3 )

{

System.out.println("continue");

//continue的时候通过循环的标签来影响指定的循环

continue XXXX;

}

System.out.println("内层: " + j);

}

//因为外层循环的剩余语句被忽略,所以下面的代码不会执行

System.out.println("外层: " + i);

}

}

}

建议在使用嵌套循环的时候,习惯性给循环写上名字(标签),方便使用continuebreak

 

练习

练习1

计算1~100之间,能够同时被37整除的数的和。

步骤

1.循环从1~1001~100就是循环计数器的值

2.在循环里面,判断循环计数器的值,是否同时被37整除,如果是则把循环计数器的值,累加到一个整数变量里面。

if( i % 3 == 0 && i % 7 == 0 )

{

//

}

3.在循环的外面输出累加后的整数变量。

 

public class Test {
    public static void main(String[] args)
    {
    	System.out.println("======================使用for循环===========================");
    	int sum = 0;
    	for( int i=1; i<=100; i++){
    		if( i%3==0 && i%7==0 ){
    			sum = sum + i;
    		}
    	}
    	System.out.println(sum);
    	
    	System.out.println("======================使用while循环===========================");
    	int sum2 = 0;
    	int i = 1;
    	while( i <= 100){
    		if( i%3==0 && i%7==0 ){
    			sum2 = sum2 + i;
    		}
    		i ++;
    	}
    	System.out.println(sum2);
    	
    	System.out.println("======================使用do while循环===========================");
    	int sum3 = 0;
    	int j = 1;
    	do{
    		if( j%3==0 && j%7==0 ){
    			sum3 = sum3 + j;
    		}
    		j++;
    	}while( j<101 );
    	System.out.println(sum3);

    }	
}


练习2

使用嵌套循环输出九九乘法表

public class Chengfabiao {
	public static void main(String[] args){
		for( int i=1; i<10; i++ ){
			for( int j=1; j<i+1; j++ ){
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();
		}
	}

}

 


练习3

实心三角形

*

***

*****

*******

 

空心三角形

*

* *

* *

*******

 

练习4,扩展练习

生成4个随机的字符

 

 

 

重点

if

for

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值