------android培训,java培训,期待与您交流------
------java 语句------程序流程控制
四种结构:顺序结构,判断结构,选择结构和循环结构。
【一】判断结构---if 语句
格式① if (条件表达式)
{执行语句;}
例: int a =4, b=3;
if (a>b)
{System.out.println("java");}
格式② if (条件表达式)
{执行语句;}
else
{执行语句;}
例:int a =3, b =4;
if (a>b)
{System.out.println(a);}
else
(System.out.println(b);)
格式③ if (条件表达式)
{执行语句1;}
else if
{执行语句2;}
else if
{执行语句3;}
....................
else
{执行语句;}
例:int a= 3,b=4;
if (a>b)
{System.out.println(a);}
else if (a<b)
{System.out.println(b);}
else if (a==b)
{System.out.println("相等");}
else
{System.out.println(null);}
【二】选择结构---switch 语句
格式:switch(表达式)
{
case 变量可能值1 :
执行语句一;
break;
case 变量可能值2 :
执行语句二;
break;
case 变量可能值3 :
执行语句三;
break;
....... ...
default :
执行语句;
}
switch语句特点:
1. 选择的类型只有四种:byte,int,short,char ;
2. case与default之间没有顺序,先执行第一个case,没有匹配的case,执行default;
3. 结束switch语句有两种情况:一是遇到break,二是执行到switch语句结束;
4. 如果匹配的case或者default没有对应的break,那么程序会继续向下执行可以执行到的语句,直到遇到break或者switch语句结束。
if语句和switch语句的选择: 如果判断具体数值不多,而且是switch可以选择的类型,建议使用switch,其效率稍高,其他情况,如判断区间,表达式结果为boolean类型判断,选择if,if使用范围广泛。
【三】循环结构
① while 循环
格式:
定义初始化表达式;
while(条件表达式)
{
循环体(执行语句);
}
② do while 循环
格式:
定义初始化表达式;
do
{
循环体(执行语句);
}
while(条件表达式)// 先do,后进行while循环。do while与while的区别是:do while中循环体至少执行一次。
③ for 循环
格式:
for(定义初始化表达式;循环条件表达式;循环后的操作表达式)
{
循环体(执行语句);
}
注意:for 与while的区别是----for定义的条件控制变量在循环后就不存在了(优化了内存),而while的条件控制变量循环后仍存在.
无限循环最简单的形式:for(;;) , while(true)。
编程思想:① 累加思想,通过变量,记录住循环操作后结果。
② 计数器思想,通过一个变量记录数据的状态变化。
语句嵌套形式:循环嵌套。
例一:获取1~100的和,并打印
class Sun
{
public static void main(String[] args)
{
int x=0;
for(int y=1;y<=100;y++)
{
x= x+y;
}
System.out.println("x="+x);
}
}
例二:获取1~100之间7的倍数的个数,并打印。
class Num
{
public static void main(String[] args)
{
int n=0;
for(int x=1;x<=100;x++)
{
if(x%7==0)
c++;
}
System.out.println("n="+n);
}
}
例三:打印*字塔。
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
class Star
{
public static void main(String[] args)
{
for(int x=1;x<=10;x++)
{
for(int y=x;y<10;y++)
{
System.out.print(" ");
}
for(int z=1;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
注:外循环控制行数,内循环控制每一行的列数,也就是每一行中的元素。塔尖朝上,可以改变条件,让条件随着外循环变化,塔尖朝下,可以改变初始化值,让初始化值随着外循环变化!
例四:打印九九乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
class Num99
{
public static void main(String[] args)
{
for(int x=1;x<10;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}
【四】其他控制流程语句
break只能做循环语句和switch语句中使用,continue只能用于循环结构,离开应用范围,则无意义。
break和continue单独存在时,后边不能有语句,因为读不到,编译器会报错。
可以通过给循环定义标签的方法,来决定break和continue是作用于那个循环。
例:
w:for(int x =0;x<4;x++){
for(int y=0;y<x;y++){
System.out.println(x);
break;//跳出当前循环
break w;//通过给循环起名字跳出w标示的循环。
System.out.println(y);//break和continue语句后边的代码都不会被读到,编译报错。
}
}
w:for(int x =0;x<4;x++){
for(int y=0;y<x;y++){
System.out.println(x);
continue w;//跳出当前循环
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
-------函数------
定义:函数就是定义在类中的,具有特定功能的一段独立程序,也被称作方法。
格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,........)
{
执行语句;
return 返回值;
}
与上面对应的代码:
public static int Num( int a, int b.........)
{ a=1,b=3;
return a+b ;
}
返回值类型:函数运行后的数据类型;
参数类型:是形式参数的数据类型;
形式参数:是一个变量,用于存储调用函数时,传递给函数的实际参数;
实际参数:传递给形式参数的数值;
return:用于结束函数;
返回值:该值会返回给调用者。
函数的特点:
① 定义函数可以将功能代码进行封装,便于该功能和代码进行复用;
② 函数只有被调用才会被执行;
③ 对于函数没有具体返回值的情况,返回值类型用关键字 void表示,那么函数中的return语句如果在最后一行,可以省略不写。
注意:函数中只能调用函数,不可在函数内定义函数,定义函数时,函数结果应返回个调用者由调用者处理。
如何定义一个函数?
① 明确运算结果,即结果的数据类型,返回值类型;
② 是否需要未知的内容参与运算,确定参数列表。
例:定义一个功能,完成x+y的和,并返回给调用者。
class Sum
{
public static void main(String[] args)
{ int sum=getSum(5,8);
System.out.println("sum="+sum);
}
public static int getSum(int x,int y)
{
return x+y;
}
}
函数的重载:overload
概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
什么时候用重载?当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
注意:参数列表里的形式参数是有序的,重载与返回值类型无关,只看参数列表。重载函数间也可以互相调用。