黑马程序员--------java基础知识 程序流程控制

                                                                         

                   -----------android培训java培训、java学习型技术博客、期待与您交流!------------

                                                                                 程序流程控制


*判断结构


if语句
三种格式:
1. if(条件表达式)
{
执行语句
}
2. if(条件表达式)
{
执行语句
}
else
{
执行语句
}
3. if(条件表达式)//如果条件满足
{
执行语句
}
else if(条件表达式)
{
执行语句
}
else
{
执行语句
}

if else结构的简写格式: 变量 = (条件表达式)?表达式1:表达式2
三元运算符:
好处:简化了if else代码
弊端:因为是一个运算符,所以运算完必须要有一个结果


*选择结构

switch语句特点

a、switch语句选择的类型只有四种:byte、short、int、char
b、case之间与default没有顺序。先执行第一个case,没有匹配的case执行default
c、结束switch语句的两种情况:遇到break,执行到switch语句结束
d、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行 的语句,直到遇到break或者switch结尾结束。


//需求:根据用于指定月份,打印该月份所属季节
//3、4、5春季 6、7、8夏季 9、10、11、秋季 12、1、2、冬季

<pre name="code" class="java"><span style="font-size:14px;">class If
{
	public static void main(String[] args)
	{
		
		int x=11;	
		/*
		if(x>12&&x<1)//判断x值是不是在1-12范围之内
			System.out.println("所属月份不存在");
		else if(x>=3&&x<=5)
			System.out.println("春季");
		else if(x>=6&&x<=8)
			System.out.println("夏");
		else if(x>=9&&x<=11)
			System.out.println("秋季");
		else
			System.out.println("冬季");
		*/

		switch(x)
		{
			case 3:
			case 4:
			case 5:
				System.out.println("春季");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
			case 12:
			case 13:
			case 14:
				System.out.println("冬季");
				break;

		}
	}
}</span>


 
if和switch语句很像,具体什么场景下,该应用那个语句呢?如果判断的具体数值不多,而是符合byte short int char这四种类型虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。其他情况:对区间判断,对结果为boolean类型判断,使用if,if使用范围更广泛。 

*循环结构:

代表语句:while,do while,forwhile

语句格式:while(条件表达式) 特点:只有条件满足才执行循环体{执行语句}

do while语句格式: 特点:无论条件是否满足,循环体至少被执行一次

do{执行语句}while(条件表达式)

for 语句格式:for(初始化表达式;循环条件表达式;循环后打操作表达式)(int x=0;x<10;x++){执行语句}

a、for里面的表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体 ,然后在执行循环后的操作表达式,接着继续判断循环条      件,重复这个过程,直到条件不满 足为止。

b、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束后自动释放内存, 而while循环使用的变量在循环结束后还可以继续使用

c、最简单的无限循环格式:while(true);for(;;){},无限循环存在的原因是并不知道 循环多少次,而是根据某些条件,来控制循环for(int            x=0;x<3;y++)可以转化为 int x=0 for(;x<3;){x++};for嵌套语句:for(;;){for(;;){ }} 

练习:九九乘法表

<span style="font-size:14px;">class ForDemo2

{
	public static void main(String[] args) 
	{
		for(int x=1;x<=9;x++)
		{
			for(int y=1;y<=x;y++)
			{
				System.out.print(x+"*"+y+"="+x*y+"\t");//加上制表符\t,打印是整齐
			}
			System.out.println();
		}

	}
}
</span>

  打印结果

 



其他流程控制语句:


break(跳出),continue(继续)

break语句:应用范围:选择结构和循环结构
continue语句:应用于循环结构
注:a、这两个语句离开应用范围,存在是没有意义的
b、这两个语句单独存在下面都不可以由语句,因为执行不到
c、continue语句是结束本次循环继续下次循环
d、标号的出现,可以让这两个语句作用于指定的范围。
break如果在循环里面一般跳出当前循环,在哪个循环里面就跳出哪个循环。如果循环体有名称,可以跳出对应循环。

continue:只能用作于循环结构,继续循环。 特点:结束本次循环,继续下次循环



练习:


/*
------*
-----* *
----* * *
---* * * *
--* * * * *
-* * * * * *
* * * * * * *
练习:打印上面*组成的等腰三角形

思路:上图是有两个有规律的图形组合而成,将‘-’变为空格符就是等腰三角形了
使用for-for循环,分别打印两个图形

*/
<span style="font-size:14px;">class ForDemoTest 
{
	public static void main(String[] args) 
	{
		for(int x=0;x<7;x++)//控制图形的行数
		{
			for(int z=x;z<6;z++)//先打印左边倒三角的空格符
			{
				System.out.print(" ");
			}
			for(int y=1;y<=x+1;y++)//再打印右边等腰三角形
			{
				
				System.out.print("* ");
			}
			System.out.println();//外循环执行完后换行,接着执行下一次
		}
	}
}
</span>

打印结果




/*

自制小练习

打印有*组成的图形,思路与等腰三角形一致

**********
****   ****
***      ***
**         **
*            *
*            *
**         **
***      ***
****   ****
**********

<span style="font-size:14px;">class ForDemoTest1
{
	public static void main(String[] args)
	{
		for(int x=0;x<5;x++)
		{
			for(int y=x;y<5;y++)
			{
				System.out.print("*");
			}
			for(int z=0;z<x;z++)
			{
				System.out.print(" ");	
			}
			
			for(int n=0;n<x;n++)
			{
				System.out.print(" ");
			}
			for(int m=x;m<5;m++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
		for(int x=0;x<5;x++)
		{
			for(int y=0;y<=x;y++)
			{
				System.out.print("*");
			}
			for(int z=x;z<4;z++)
			{
				System.out.print(" ");	
			}
			
			for(int n=x;n<4;n++)
			{
				System.out.print(" ");
			}
			for(int m=0;m<=x;m++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
}</span>
打印结果



                -----------android培训java培训、java学习型技术博客、期待与您交流!------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值