黑马程序员 笔记(三)——语句

时间:2022-06-21 00:27:55
------- android培训java培训、期待与您交流! ----------

程序流程控制:

(1)  顺序结构程序从上到下一行一行执行,直到程序结束。

(2)  判断结构

if语句:

流程说明①通过if...elseif...else决定程序流程。

②如果if中的条件满足则执行其中语句,if未满足则继续判断else if,如果满足则执行,不满足继续判断下一个else if,如果所有都不满足,则执行else.

    格式:

    格式一:

         if(条件表达式)         //当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。

        {                            

               执行语句;

        }

注:如果if只控制一条语句则可以省略大括号。

 

   格式二:

        if(条件表达式)//当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。        
            
{                                   

                   执行语句;

          }

        else

        {

            执行语句;

        }

注:格式二这类语句if else结构简写格式:变量 = (条件表达式)?表达式1:表达式2

   好处:可以简化if else代码。

        弊端:因为是一个运算符,所以运算完必须要有一个结果(if..else..可以没有结果结果)。

 

格式三

        if(条件表达式)//当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。

{                                   

                    执行语句;

}

else if

{

                 执行语句;

}

----

else

{

                 执行语句;

}

 

注:如格式三不管代码有多长都属于一个语句。

                  代码诠释

class IfDemo1 
{
public static void main(String[] args)
{
//需求1:根据用户定义的数值不同。打印对应的星期英文。
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

int x = 4;

if(x==3 || x==4 || x==5)
System.out.println(x+"春季");
else if(x==6 || x==7 || x==8)
System.out.println(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");

}
}

/*
运行结果
===============================
优秀
===============================
*/


 

(3)  选择结构

switch语句:代码诠释(SwitchDemo)

    通过switch...case...default语句控制程序流程。

    根据switch后括号中的值判断运行哪一个case,这个值可以是byteshortcharint

    default语句是可选的,如果所有case都不满足,则会执行default

    一旦匹配到一个case,程序就会从这个case向下执行,执行完一个case之后不会跳过其他的case,如需跳过请使用break

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

 

格式

           switch(表达式)

{

case 取值1:

执行语句;

break;

 

case 取值 2:

执行语句;

Break;

 

……

Default:

执行语句;

break;

}

 

if语句和switch语句的选择

如果判断的具体数值不多,而是符合byte short int char这四种类型。

           虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

代码诠释SwitchDemo

/*
需求:switch语句的练习
根据用户输入的字符去执行相应的方法
*/class SwitchDemo
{
public static void main(String[] args)
{
int a = 8;
int b = 2;
//被操作的数据

char x = '+'; //x的值可以是byte、short、char、int

switch (x)//根据x的值进行相应的操作。先从上到下的进行x的匹配,如果没有才执行default。
{
case '+':
System.out.println("a+b = "+(a+b));
break;

case '-':
System.out.println("a-b = "+(a-b));
break;

case '*':
System.out.println("a*b = "+(a*b));
break;

case '/':
System.out.println("a\b = "+(a/b));
break;

default:
System.out.println("输入非法");
}
}
}

/*
运行结果
==================================
a+b = 10
==================================
*/


 

(4)  循环结构:代表语句:while do while for

   while语句格式:  

特点:

       先判断while中的表达式结果是否为truetrue则执行循环体,执行结束之后再次判断,如果表达式结果为false则跳出循环

格式

            while(条件表达式)                       

        {                                    

                         执行语句;

                 }

(代码诠释)WhileDemo

/*
目的:通过这个程序理解whlie循环的用法
需求:运算从1加到100
*/

class WhileDemo
{
public static void main(String[] args)
{

int x = 1;
int sum = 0;//在循环外要打印sum的值所以,不能把sum定义在while循环里面

while(x<=100)
{
sum = sum + x;
++x;
}

System.out.println("sum = :"+sum);


/*
while:先判断条件,只有条件满足才执行循环体。
*/

}
}
/*
运行结果
====================================
sum = :5050
====================================
*/


 

   dowhile语句: 

特点:

先执行一次循环体,然后判断while中的表达式,如果是true继续执行,如果是false则跳出循环。

                格式

do

{

             执行语句;

}while(条件表达式);

特点:dowhile特点是条件无论是否满足,循环体至少被执行一次

代码诠释(DoWhileDemo)

/*
目的:通过这个程序理解dowhlie循环的用法
需求:运算从1加到100
*/

class DoWhileDemo
{
public static void main(String[] args)
{

int x = 1;
int sum = 0;
do
{
sum = sum + x;
++x;
}while(x<=100);

System.out.println("sum = :"+sum);


/*
do while: 先执行循环体,在判断条件,条件满足,再继续执行循环体。
*/

}
}

/*
运行结果
=====================================
sum = :5050

=====================================
*/


 

   for循环:for(初始化表达式①;循环条件表达式②;循环后的操作表达式③   

{

      循环内容④;

}

                     特点:

    语句1:这条语句会在整个循环开始之前执行,且仅运行一次,不参与循环。

    语句2:必须是一个返回boolean值的表达式,如果写了这个语句那么每次循环开始之前会判断,true则执行循环,false则不执行。没写则直接执行。

   语句3:这条语句在每次循环体运行结束之后执行。

   for中定义的局部变量,当for循环结束后,变量消失。

   当表达式多的时候,用逗号分割开就好了。

   执行顺序:初始化表达式①(只在循环开始执行一次)——>循环条件表达式②——>执行语句④——>循环后的操作表达式③——>循环条件表达式②——>执行语句④——>循环后的操作表达式③……

 

格式:

              for(初始化表达式;循环条件表达式;循环后的操作表达式)

              {

                     执行语句;

              }

代码诠释(ForDemo)

/*
目的:通过这个程序理解for循环的用法
需求:运算从1加到100
*/
class ForDemo
{
public static void main(String[] args)
{

int sum = 0;

for (int x=1; x<=100;++x )
{
sum = sum +x;
}

System.out.println("sum = "+sum);


}
}
/*
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。
for语句执行完毕。该变量在内存中被释放。

2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。


总结:
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
*/


/*
运行结果
=============================================
sum = 5050
=============================================
*/


 

for语句的嵌套

for循环的执行语句上也有一个循环称为内循环。内循环相当于外循环的执行语句。执行和for循环类似,只是当外循环满足条件后,内循环要一直执行到循环结束,才会进行第二次外循环的判断。

 

 代码诠释ForForDemo

 

/*
for嵌套的练习:

需求:通过for嵌套打印出以下图形

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

步骤:1、先定义一个外循环来定义循环的行数
2、定义一个内循环来实现*的具体打印。

*/
class ForForDemo
{
public static void main(String[] args)
{
for (int x=0; x<5 ;x++ )//x<5:因为外循环控制行数。一共5行。
{
for (int y=x; y<5 ;y++)//定义内循环的次数
{
System.out.print("*");
}
System.out.println();//换行
}
}
}
/*
运行结果
================================================
*****
****
***
**
*
================================================
*/


       ()break语句和continue语句

                     break:跳出

   应用于选择结构和循环结构,结束循环。

   breakcontinue单独存在时,下面可以有任何语句。因为都执行不到

                     continue跳过本次循环

   应用于循环结构

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

 

                     主:①,这两个语句离开应用范围,存在是没有意义的。

②这个两个语句单独存在下面都不可以有语句,因为执行不到

continue语句是结束本次循环继续下次循环。

④标号的出现,可以让这两个语句作用于指定的范围。