程序流程控制、函数、数组


 一、程序流程控制

 判断结构

         if语句

               1.如果if语句中只有一条语句,那么可以不写大括号。不过初学者一定要写括号,以免出错。

               2.如果if语句没写大括号,if就只能控制离它最近的单条语句。

               3.三元运算符就是ifelse语句的简写格式。例如:b=a>1?100:200;就可以实现和上面同样的功能。

               4.if(表达式)后面切忌加上分号,否则表示无论表达式为true或者false,都不执行任何语句。

         if语句特点

              1.每一种格式都是单条语句。

              2.第二种格式与三元运算符的区别:三元运算符运算完一定要有值出现。好处是:可以写在其他表达式中。

 3.条件表达式无论写成什么样子,只看最终的结构是否是true或者false


  示例1:根据用户定义的数值不同,打印对应的星期。
class IfDemo 
{
	public static void sop(Object obj)
	{
		System.out.println(obj);//打印
	}
	public static void main(String[] args) 
	{
		int week = 4;//week为4,

		if(week == 1)
			sop(week+"对应中文是星期一");
		else if(week == 2)
			sop(week+"对应中文是星期二");
		else if(week == 3)
			sop(week+"对应中文是星期三");
		else if(week == 4)
			sop(week+"对应中文是星期四");
		else if(week == 5)
			sop(week+"对应中文是星期五");
		else if(week == 6)
			sop(week+"对应中文是星期六");
		else if(week == 7)
			sop(week+"对应中文是星期日");
		else
			sop(week+"没有对应中文星期");

	}
}



选择结构
         switch语句
                特点:
 1.switch语句选择的类型只有四种:byte,short,int,char。
                      2.case与default没有顺序。先执行第一个case,没有匹配的case执行default。
                      3.结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
                      4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
                      5.进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。

示例:多个case同一种处理方式的情况。
class SwitchDemo 
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args) 
	{
		/*
		一年四季
		春季: 3 4 5
		夏季:6 7 8
		秋季:9 10 11
		冬季:12 1 2
		*/

		int month = 9;//定义month的值

		switch(month)
		{
			case 3:
			case 4:
			case 5:
				sop(month+"月是春季");
				break;
			case 6:
			case 7:
			case 8:
				sop(month+"月是夏季");
				break;
			case 9:
			case 10:
			case 11:
				sop(month+"月是秋季");
				break;
			case 12:
			case 1:
			case 2:
				sop(month+"月是冬季");
				break;
			default:
				sop(month+"没有对应季节");
				break;
			
		}
	}
}


if和switch语句的应用:
 if:
 1.对具体的值进行判断。
 2.对区间判断。
 3.对运算结果是boolean类型的表达式进行判断。
switch:
 1.对具体的值进行判断。
 2.值的个数通常是固定的。
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高


循环结构
关键词:while,do while,for。

       while和do while的区别:
                do while语句的特点:无论条件是否满足,循环体至少执行一次。
 while如果条件不满足,循环体一次都不会执行。

练习1:获取1到10,10个数字的和。
class  WhileDemo
{
	public static void sop(Object obj)
	{
		System.out.println(obj);//打印
	}
	public static void main(String[] args) 
	{
		int x = 1,sum=0;//定义int型 x,sum的初始值
		while(x<=10)//只要x小于等于10
		{
			sum = sum+x;//sum+x
			x++;//x自加1
		}
		sop("sum="+sum);//打印sum
	}
}



 练习2:1~100之间,6的倍数出现的次数。
class  WhileDemo2
{
	public static void sop(Object obj)
	{
		System.out.println(obj);//打印
	}
	public static void main(String[] args) 
	{
		int x= 1,count= 0;//定义int型 x,count的初始值
		while(x<=100)//只要x<=100
		{
			if(x%6==0)//如果x能整除6
				count++;//count加1
			x++;//x自加
		}
		sop("count="+count);//打印count
	}
}




for 循环 

       1.for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
       2.for循环的初始化表达式、循环后的操作表达式可以是多个表达式,通过逗号分隔。
       3.while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
      4.最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
 5.在使用循环时候,一定要明确哪些语句需要参与循环,哪些不需要。循环通常情况下,需要定义条件,需要控制次数。

For循环嵌套

 练习1:打印出下格式的内容:
*****
****
***
**
*

class  ForForDemo
{

	public static void main(String[] args) 
	{
		for(int x = 5;x > 0;x--)
		{
			for(int y = x; y > 0;y--)
			{
				System.out.print("*");
			}
			System.out.println();
		}

	}
}



  练习2:打印九九乘法表成如下形式:
1*1=1
 1*2=22*2=4
 1*3=32*3=63*3=9

class  ForForDemo5
{
	public static void main(String[] args) 
	{
		for(int x=1; x<=9;x++)
		{
			for(int y=1;y<=x;y++)
			{
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}
	}
}


 1.代码中的"\t"是一个转义字符,也就是制表符。还有其他的一些转义字符:\n:回车,\b:退格,\r:回车符。
2.windows系统中回车符其实是由两个转义字符组成的:\r\n,linux中回车符是\n。

练习3:打印出下格式的内容:
* * * * *
 * * * *
  * * *
   * *
    *

class  ForForDemo6
{
	public static void main(String[] args) 
	{
		for(int x =1;x<=5;x++)
		{
			for(int y=5;y>=x;y--)
			{
				System.out.print("* ");
			}
			System.out.println();
			for(int z=0;z<x;z++)
			{
				System.out.print(' ');
			}
		}
	}
}



二、 函数

函数的定义
         函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。
函数的格式
         修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...)
         {
 执行语句;
                 return返回值;
         }
 返回值类型:函数运行后的结果的数据类型。
 参数类型:是形式参数的数据类型。
 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
 实际参数:传递给形式参数的具体数值。
 return:用于结束函数。
 返回值:该函数运算后的结果,该结果会返回给调用者。

函数的特点
        1.定义函数可以将功能代码进行封装。
        2.便于对该功能进行复用。
        3.函数只有被调用才会被执行。
 4.函数的出现提高了代码的复用性。

PS.
        1.对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,或者写上return;。
        2.函数中只能调用函数,不可以在函数内部定义函数。否则,编译时期就会报错。
        3.定义函数时,函数的结果应该返回给调用者,交由调用者处理。

函数的应用
        两个明确:
 明确要定义的功能最后的结果是什么?
                明确在定义该功能的过程中,是否需要未知内容参与运算。

函数的重载
        重载的概念:
                在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
        重载的好处:
 方便于阅读,优化了程序设计。

        1.重载与返回值类型无关,只看参数列表。
        2.java是严谨性语言,如果函数调用出现不确定性,会编译失败。

 练习:打印乘法表。
class  FunctionDemo
{
	public static void main(String[] args) 
	{
		printCFB(9);//调用printCFB方法

	}

	public static void printCFB(int num)
	{
		for(int x = 1;x<=num;x++)
		{
			for(int y =1;y<=x;y++)
			{
				System.out.print(y+"*"+x+"="+x*y+"\t");//打印出乘法表
			}
			System.out.println();
		}
	}
}



三、数组

数组的定义
         概念:
 同一种类型数据的集合。其实,数组就是一个容器。
         数组的好处:
                 可以自动给数组中的元素从0开始编号,方便操作这些元素。
         格式1:
 元素类型[ 数组名=new 元素类型[元素个数或数组长度];
         格式2:需要一个容器,存储已知的具体数据。
 元素类型[ ]数组名=new 元素类型[]{元素,元素,……};

数组的内存分配及特点
         int[ ] arr = new int[4];

 内存的划分
       1.寄存器。
       2.本地方法区。
 3.方法区。
 4.栈内存。
       5.堆内存。
                  栈内存:
 用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放。
                  堆内存:
 数组和对象,通过new建立的实例都存放在堆内存中。
 每一个实体都有内存地址值。
         实体中的变量都有默认初始化值,根据类型的不同而不同。整数类型是0,小数类型是0.0或0.0f,boolean类型是false,char类型是'\u0000'。
 如果将数组的引用实体设置为null,也就是实体不再被使用,那么会在不确定的时间内被垃圾回收器回收。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值