黑马程序员——Java基础语法(二)---流程控制与函数

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一、程序流程控制
    也称语句主要有:判断语句  ;选择语句  ;循环语句

1、判断语句
if语句
三种格式:
1.  if(条件表达式)                                             3. if(条件表达式)
{ {
执行语句; 执行语句;
} }
2.  if(条件表达式) else if (条件表达式)
{ {
执行语句; 执行语句;
} }
else ……
{ else
执行语句; {
} 执行语句
        }

if语句特点

a,每一种格式都是单条语句。

b,第二种格式与三元运算符的区别:三元运算符运算

完要有值出现。好处是:可以写在其他表达式中。

c,条件表达式无论写成什么样子,只看最终的结构是

否是true 或者false;

例如:

int x = 3;
//if的三种表达方式
//第一种

if(x>1) ;//条件不满足{}内的不执行,控制{}内的语句
/* {
System.out.println("yes");
}
*/
System.out.println("yes");//这样写if执行第一条语句(这一条)


System.out.println("over");

/*

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

*/
if(x>1)
{
System.out.println("over");
}
else
{
System.out.println("over");  //两层判断
}

//第三种    多层判断    也是单条语句   格式if  else if  else if....else(也是一个整体)
  int n =3    ;
if(n>1)
  System.out.println("a") ;
   else if(n>2)
  System.out.println("b") ;
else if(n>3)
  System.out.println("c") ;
else
  System.out.println("d") ;


if(n>1)
  System.out.println("a") ;//这里是第一种
   if(n>2)
  System.out.println("b") ;//这里是第三种
else if(n>3)
  System.out.println("c") ;
else
  System.out.println("d") ;
System.out.println("over") ;


2、选择语句
switch语句
格式:
switch(表达式)
{
case 取值1:
   执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
switch语句特点
   a、switch语句选择的类型只有四种:byte,short,int ,char。  

   b、case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。

   c、结束switch语句的两种情况:遇到break,执行到switch语句结束。

   d、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
例如

int x= 3 ;
switch(x)    //转换     读法:先读case ,在读default。读到break或者default 才停止
{
default:   //注意有符号“:”
System.out.println("a");
//break;     //先读的case 读完没有符合的选着读这个,读完输出结果a,没有遇到break 继续向下读
case 4 :
System.out.println("b");
//break;    //读这个语句,由于上面的语句已经判断这个语句不在执行判断直接读出结果
case 6 :
System.out.println("c");
break;     //这里遇到break跳出switch语句,switch语句执行完毕。   最后输出值为  a   b   c  
case 2 :
System.out.println("d");
break;
case 5 :
System.out.println("e");
break;


     /
*switch和if语句的区别: switch语句选择的类型只有四种:byte,short,int ,char
    
     if语句可以用于区间判断 boolean   if的判断更广
 */

}
3、循环结构
代表语句:while ,do while ,for
while语句格式:                                       do while语句格式:
while(条件表达式)                                     do
{                                                                   {                                                                                                     
    执行语句;                                                   执行语句;
}                                                                   } while(条件表达式);
do while特点是条件无论是否满足,
循环体至少被执行一次。
for语句格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a、for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行       循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
b、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用                 的变量在循环结束后还可以继续使用。
c、最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,              来控制循环。

4、其他流程控制语句
break(跳出),continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注:
a、这两个语句离开应用范围,存在是没有意义的。
b、这个两个语句单独存在下面都不可以有语句,因为执行不到。
c、continue语句是结束本次循环继续下次循环。
d、标号的出现,可以让这两个语句作用于指定的范围。
联系总结

例子
/*
1.要求:1~100之间7的倍数的个数并且打印
2.思路:第一种:可以定义两个变量int m,n=1;  m=7*n;m<=100 ;n++   输出的m值为100里面满足条件的值  输出    的n 择为满足条件的个数
   第二种:定义两个数int m=0, n;  n%7==0    n<=100 n++  m++  输出的n是满足条件的值 m是满足条件的个数
3.步骤:一、定义两个自变量n,m; 二、写循环函数   三、输出m n


*/
//for语句 用第一种来试验
/* int m=0 , n=1;
for ( ;m<=100 ;n++ )  //这样子输出的结果是105 16  *******记住for循环是怎样循环的*******
{
m=7*n;
}
System.out.println(m);
System.out.println(n);


//换种写法纠正错误


int m=0 , n=1;
for ( ;m<=(100-7) ;n++)  
{
m=7*n ;
}
    
System.out.println(m);
System.out.println(n-1);
}
}
*/ 
 //  for语句写完
//用do while写第二种方法if(n%7==0)m++;System.out.println(n);
/*
int m=0, n=1 ;
do
{

if(n%7==0)
{ System.out.println(n) ;  //嵌套语句哦^^,,,
m++;               
  /*
易错点在这里哦,m++;不能放在括号外面,计数器只记录成功的地方,放在括 号外面或者没括号if语句只管理自己下面的一句,所以方括号外面技术一百次了
*/
}

n++;
       
}
while (n<=100);
System.out.println(m) ;


}
}
*/
//第三种:做个for嵌套语句

int m=0 ;                   //一定要注意这一点,不能写到for里面了
for (int n=1; n<=100; n++)
{
if(n%7==0)
{System.out.println(n);
m++  ;
}
}

System.out.println("m="+m) ;
}
}

用第种运算打印结果为:


二、函数

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

3、函数的特点
      定义函数可以将功能代码进行封装
      便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可 以省略不写。
注意:
• 函数中只能调用函数,不可以在函数内部定义函数。
• 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
4、函数的应用
两个明确
• 明确要定义的功能最后的结果是什么?
• 明确在定义该功能的过程中,是否需要未知内容参与运算

5、结合函数与对应说明
  例如:
class  Function2
{
public static void main(String[] args) 
{
System.out.println(add(7,9));
//System.out.println(getMax(7,9));
// cFB(9) ;
//buoBianXing(9);
//System.out.println("Hello World!");
}

//定义函数:
//1、打印任意边的矩形
//2、打印任意大小的等边三角形
//3、打印任意的乘法表
/*
1.要求:打印任意边的矩形
2.分析:这是一个循环嵌套函数,这个函数有两个整数的未知数变量,要在循环函数里面打印,不返回具体值
          * 明确要定义的功能最后结果是打印矩形:即没有具体结果返回即返回值类型用void
  * 是否有未知内容参与:输入任意边长的矩形数值,即有int类型的两个未知数。。
即:(参数类型,形式参数);(int m , int  n )
3.步骤:1 建立函数  2 写循环函数代码 3 输入任意数值检验
*/
/*
* * * * *
        * * * * *
* * * * *
* * * * * 
*/
public static void duoBianXing(int m  , int n )//设矩形长为m宽为n
{
for (int x=1;x<=n ;x++ )
{
for ( int y=1;y<=m ; y++)
{
System.out.print("* ") ;

}
System.out.println();
}

}
/*
2、打印任意大小的等腰三角形
1.要求:打印任意大小的等边三角形
2.分析:观察得到这是一个循环嵌套函数,且是两个循环嵌套函数共同执行这个函数有两个整数的未知数变量,              要在循环函数里面打印,不返回具体值
3.步骤:1 建立函数  2 写循环函数代码 3 输入任意数值检验

-----* 
----* *  
---* * * 
- * * * * 

*/
public static void duoBianXing(int m  )//设等边三角形底边长为m 
//三角形和矩形都是多变性可以定义一个函数名:这是重载函数
{
for (int x=1;x<=m ;x++ )
{
for ( int y=x+1;y<=m ; y++)
{
System.out.print("-") ;
}
for ( int y=1;y<=x ; y++)
{
System.out.print("* ") ;

}
System.out.println();
}
}
/*

3、打印任意的乘法表
*/
public static void cFB(int n  )//设我想得到到n行的乘法表
{
for (int x=1;x<=n ;x++ )
{
for ( int y=1;y<=x ; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t") ;
}
System.out.println();
}
}
//4、比较两个数大小
public static int getMax(int a, int b)
{
if(a>b)
return a;
else
return b;

// return (a>b)?a:b;    可以用三元函数书写
}
/*
重载函数
 1、定义:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
 2、重载的特点:与返回值类型无关,只看参数列表
 3、重载的好处:方便于阅读,优化了程序设计。
*/
//重载示例:
//返回两个整数的和
static int add(int x,int y){return x+y;}
//返回三个整数的和
static int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
static double add(double x,double y){return x+y;}

}


打印任意大小的等边三角形运行一下结果:









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值