Java 程序流程控制
判断结构
选择结构
循环结构
1. 判断结构
if语句
三种格式:
1> if(条件表达式)
{
执行语句;
}
2> if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3> if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
if else结构的简写格式:变量=(条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
2. 选择结构
switch语句
格式:
switch(表达式) //只接受四种类型,byte、short、int、char
{
case取值1:
执行语句;
break;
case取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
注:
1>case与default没有顺序之分。
2>switch执行遇“break”跳出,或“}”
3>也可以写成【3、4、5情况相同时】
case 3:
case 4:
case 5:
System.out.println(“春季”);
break;
在区间和boolean类型一般用if语句,简单几个情况用switch(byte、short、int、char)
switch效率稍高,if语句的适用范围更广。
3. 循环结构
代表语句:while、do while、for
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式)
do while的特点是:条件无论是否满足,循环体至少被执行一次。
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:a. for里面表达式运行顺序。初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止。
b.while与for可以互换,区别在于for为了循环设定的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c.最简单无限循环格式:while(true),for(;;)无限循环的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
累加思想:
int sum=0;
for(int x=1 ; x<=100 ; x++)
{
if(x%7 ==0)
sum+=x;
}
计数器思想:
int count=0;
for(int x=1; x<=100, x++)
{
if(x%7 == 0)
count++;
}
循环嵌套:
for(int x=0 ; x<3 ; x++) //行
{
for(int y=0 ; y<4 ; y++) //列
{
System.out.println(“*”);
}
System.out.println();
}
结果:
****
****
****
eg(例子):
/**
打印
----*
---* *
--* * *
-* * * *
* * * * *
*/
class ForForTest
{
public static void main(String[] args)
{
for(int x=0;x<5;x++)
{
for(int y=x;y<4;y++)
{
System.out.print("-");
}
for(int z=0;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
正三角:
*
* *
* * *
* * * *
* * * * *
for(int x=0 ; x<5 ; x++)
{
for(int y=0 ; y<=x ;y++)
{
System.out.println(“*”);
}
System.out.println();
}
倒三角:
* * * * *
* * * *
* * *
* *
*
for(int x=0 ; x<5 ; x++)
{
for(int y=x ; y<5 ; y++)
{
System.out.println(“*”);
}
System.out.println();
}
总结:
尖朝上,可以改变条件,让条件随外循环变化。
尖朝下,可以初始化值,让初始化随着外循环变化。
//九九乘法表
for(int x=1; x<=9 ; x++)
{
for(int y=1; y<=x ; y++)
{
System.out.print(y+”*”+x+”=”+y*x+”\t”); //加入”\t”是为了排版整齐
}
System.out.println();
}
4. 其他流程控制语句
break(跳出),continue(继续)
continue语句:应用于循环结构。 break语句:应用于选择结构和循环结构。
注:
a. 这两个语句离开应用范围,存在是没有意义的。
b. 这两个语句单独存在下面都不可以有语句,因为执行不到。
c. continue语句是结束本次循环继续下次循环。
d. 标号的出现,可以让这两个语句作用于指定的范围。
break是跳出当前循环,除非指明跳出哪个。
eg:
w: for(int l =1 ; l<=9; l++) //for循环可起名字,即标号
{
q: for(int h=1 ; h<=1 ; h++)
{
System.out.print(h+”*”+l+”=”+h*l+”\t”);
break w; //此时跳出外面大的for循环
}
System.out.println();
}
eg:
for(int x=1; x<=0 ; x++) //continue:特点:结束本次循环继续下次循环。
{
if(x%2 == 1)
continue;
System.out.println(“x=”+x);
}
函数
函数的定义
函数的特点
函数的应用
函数的重载
1. 函数的定义:
函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。
函数的格式:
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,……)
{
执行语句;
reture 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
eg:
public static int getResult (int num)
{
return num*3+5;
}
2. 函数的特点
定义函数可以将功能代码进行封装。
便于对该功能进行复用。
函数只有被调用才会被执行。
函数的出现提高了代码的复用性。
对于函数没有具有返回值的情况,返回值类型用关键字void表示,那么该函数的return语句如果在最后一行可以省略不写。
注意:
函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
eg:
public static void getResult(int num)
{
System.out.println(num*3+5);
return; //这里的return可不写
}
3. 如何定义一个函数
先明确该功能的结果,明确返回值类型。
明确在该功能的过程中是否需要位置的内容参与运算,明确参数类型和个数。
4. 函数的重载
概念:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不可即可。
特点:
与返回值类型无关,只看参数列表。
好处:
方便于阅读,优化了程序设计。
eg:
//返回两个整数的和
int add(int x,int y)
{
return x+y;
}
//返回三个整数的和
int add(int x,int y ,int z)
{
return x+y+z;
}
//返回两个小数的和
double add(double x,double y)
{
return x+y;
}
什么时候用重载?
当定义的功能相同,但参与运算的内容不同【通过参数列表的不同来区分多个同名函数】