黑马程序员-day03-Java基础之语句

来源:互联网 发布:杨常事件知乎 编辑:程序博客网 时间:2024/05/01 05:42

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

Java基础之语句

一、程序的流程控制,控制是通过语句的方式来完成的。

判断结构、选择结构、循环结构、顺序结构(最简)

判断结构

If语句 三种格式:

1、if(条件表达式)

{

执行语句;

}条件表达式只有truefalse两种结果。True时执行,false不执行执行语句。

2、if(条件表达式){

执行语句;

}

else

{

执行语句;

}其与三元运算符的区别:三元运算符能简化书写,但有局限性,只有if else语句执行完有具体的结果(数值)时,才可以简写成三元运算符的形式。(因为三元运算符是一个运算符,只要是运算符,运算完就必有结果)

还有大括号可否省略的问题,若if所控制的是单条语句,是可以的。单条语句:非单行语句,只要是一个整体即可。

若大括号省略,if只控制与它最近的那条语句。

例:if(x>2)

System.out.println("true");语句一

System.out.println("false");语句二。这里if只控制语句一。

3、if(条件表达式)

{

执行语句;

}

else if(条件表达式)

{

执行语句;

}

--------

else

{

执行语句;

}特点:1、虽然有多行,但是一个整体,即是单条语句。2、虽有多个代码块,但只有一个会执行。

If语句的嵌套格式

例:int a=2,b=1;

if(a==1)

{

if(b==1)

{

System.out.println("a");

}

else

{

System.out.println("b");

}

else if(b==1)

{

System.out.println("c");

}

else

System.out.println("d")

}其结果是c

代码编写中的一个重要原则:复用性尽可能提升。

If语句练习:

需求:春 34678  91011 121定义一个程序,对用于输入的程序打印出相应的季节。

int mooth(定义变量)

可用if(mooth==3||mooth==4||mooth==5)这种条件表达式--else if()-- else 月份不存在

也可用if(mooth<1||mooth>12)--月份不存在(区间情况先进行有效值的判断)else if (mooth>=3&&mooth<=5)--这里注意双或双与的运用。

二、选择结构

Switch语句格式

switch(表达式)

{

case 取值1

执行语句;

break;(跳出结束,同时该switch语句结束)

case 取值2

执行语句;

break

---

default:(所有case都不匹配时)

执行语句;

break

}

Switch(表达式)表达式中被选择的内容只能支持四种类型 byteshortintchar

备选答案并没有指定的顺序,但是执行肯定从第一个case开始,将每个case都执行完。如果其中有匹配的,执行完,通过该casebreak跳出结束。如果没有,则执行default

Switch语句结束只有两种情况:1、执行到break 2、执行到switch语句结束。

Default:如果default后没有break,紧跟其后的case会被视作default内容被执行能执行的语句,直到break结束。

case1case2case3的执行语句是相同的话,为提高代码复用性,即可用switch语句的另一特性:

case 1

case 2:

case 3:

执行语句;

break 

Ifswitch语句的应用场景:

1、如果对具体个数的数值进行判断,用if可以,用switch也可,建议使用switch。因为switch 会将被选择的答案加载至内存中,选择效率稍高。

2、如果要对数据区间判断,用if语句。

3、如果运算结果是boolean类型,毫无疑问,用if语句。

三、循环结构

代表语句:whiledo while、 for

While 语句格式

while(条件表达式)

{

执行语句;

}大括号内的是循环体。

Do while语句格式

do

{

执行语句;

}while(条件表达式);特点:无论条件是否满足,循环体都至少执行一次。

注意while();后的;号,表示结束。

若出现死循环,可用ctr+c 来结束dos命令行的等待。

循环结构的使用:当某些语句需要执行很多次,要想到循环结构。

练习:1 求1——10的和

思路:1、定义一个变量,因为要获取区间中要累加的数据。还有一个变量是要用来记录具体的和。

2、定义循环时,哪些语句需要参与循环,哪些不需要

累加算法:数据按某种规律变化并不断在增大,通过变量记录不断变化的数据通过循环来进行变化的不断操作。

2 求1-100之间6的倍数的个数

 int x=1,count=0;

while(x<=100)

{

if(x%6==0)

count++;(计数器)

x++;

}

System.out.println(count);

For语句

格式:

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

{

执行语句;(循环体)

}初始化表达式只执行一次。

forint x=1;x<3;x++)中的x变量的任务只是为了控制循环的次数,在for循环结束后,x在内存中分配的存储空间即被释放。

例:for(int x=1;x<3;x++){---}System.out.println("x="+x);编译会失败。

For循环和while循环是可以互换的。

如果定义的变量只是为了控制循环次数而存在的话,可将变量定义在for循环中。如果定义的变量被循环操作后,后续的程序还会使用该变量循环后的结果,就把它定义在循环外边。这就是forwhile的区别所在。

For语句的细节:1forint x=1,y=1;x<3;x++,y++)同时声明两个变量,可以定义多个表达式。2for(  ;   ;  )初始化表达式,循环条件、循环后的操作表达式都可省略。

For( ; ;)for语句的最简单无限循环格式。

Whiletruewhile语句的最简单无限循环格式。

For的循环是这样的:初始化---循环条件---执行语句---循环后的操作表达式---循环条件--执行语句---循环后的操作表达式--循环条件不满足终止。例:

int x=1;

for(System.out.println("a");x<3;System.out.println("b"))

{

System.out.println("c");

x++;

}其结果是 a c b c b

3000m的绳子每天减一半,需要多少天,绳子小于5m

需求:1、多少天,数据不确定,定义变量。

减一半就加一天,满足某一条件就进行自增,计数器思想。

2、需要循环对变量进行操作,同时要明确条件。

步骤:1、定义变量,记录天数。

2、明确循环的初始表达式、循环条件、循环后的操作表达式

int day=0;

for(int x=3000;x>=5;x/=2)

{

day++;

}

System.out.println(day);

For的嵌套循环

Println中的ln:在数据打印完毕后结尾处换行一次。

例:System.out.print("xixi");

System.out.println("hehe");结果输出为xixihehe

转义字符\n可以实现在句中的换行,println是在结尾处换行。比如:

Println"xixi\nhehe";

\t:制表符,可以对数据自动对齐。\b:退格。

如果想打印出带有双引号的"haha"System.out.println(""haha"");会编译错误。因为第二个和第四个"是有效的。相当于两个空字符串中间加上尚未定义的变量。只需在第二、四个"前面加上转义符\即可。

System.out.println("\"haha\"");

Char ch='n' 正确 而 char ch ='\n'也是正确的。因为这里的\n 是一个回车符。转义字符只运用在字符、字符串中。

forint x=0;x<3;x++(外循环,控制的是行)

{

for(int y=0;y<4;y++)(内循环,控制的是列)

{

System.out.println("*");

}

}

例: 4 3 2 1

 4 3 2

 4 3

 4

共有四行,外循环可为forint x=0;x<=4;x++)而每行都是从4开始,所以内循环中的初始化值始终是,内循环forint y=4;y>x;y--

四、其他流程控制语句

Break(跳出)应用范围:1switch语句  2、循环 跳出循环(loop

Break语句单独存在时,下面不要定义任何语句,因为执行不到。例如:for(int x=0;x<3;x++)

{

break;

System.out.println("x="x);

}编译后是错误的

for(int x=0;x<3;x++)

{

if(x==2)

break;

System.out.println("x="x);

}是正确的,break在满足某一条件下直接结束for循环。

(标号)outside:for(int x=0;x<3;x++)

{

inside:for(int y=0;y<4;y++)

{

break outside;

}

System.out.print(x);

}结果是012Break只可跳出与它相关联的语句。

Continue语句:只能应用在循环语句当中,继续循环。

Continue在单独存在时,下面不要定义语句,因为执行不到。

作用:结束本次循环,继续下次循环。

for(int x=0;x<10;x++)

{

if(x%2==0)

{

continue;

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

}

}结果是1 3 5 7 9竖行

Wai:for(int x=0;x<3;x++)

{

Nei:for(int y= 0;y<4;y++)

{

System.out.println(x);

continue Wai;

}

}结果是0 1 2

经典例题:

int x=1,y=1;

if(x++==2&++y==2)

{

x=7;

}

System.out.println("x="+x+",y="+y);单与两边都要执行,x++首先会临时存储x,结果为x=2,y=2

int x=1,y=1;

if(x++==2&&++y==2)

{

x=7;

}

System.out.println("x="+x+",y="+y);双与 第一个为假则不再继续判断第二个,所以结果为x=2,y=1

int x=1,y=1;

if(x++==1|++y==1)

{

x=7;

}

System.out.println("x="+x+",y="+y);单或都要进行判断,第一个为真,则为真,所以结果为x=7,y=2

条件表达式的结果只有true或者false。无论怎样,只要结果是boolean值即可。例如:

boolean b = true;

if (b=false)----是正确的。而

x= 3 

if (x==4)编译正确,而

if(x=4)则编译错误。

THE LAST ONE:

int x=2,y=3;

switch (x)

{

default:

y++;

case 1:

y++;

case 3 :

y++;

}

System.out.println("y="+y);default后没有break,所以结果为6

以毕老师的打油诗结尾:你或者不都在那里,不三不四。。。好诗好诗

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------