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

来源:互联网 发布:盗墓笔记知乎 编辑:程序博客网 时间:2024/05/29 16:09
------- 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+"冬季");elseSystem.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、intswitch (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语句是结束本次循环继续下次循环。

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