----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
Java基础之语句
一、程序的流程控制,控制是通过语句的方式来完成的。
判断结构、选择结构、循环结构、顺序结构(最简)
判断结构
If语句 三种格式:
1、if(条件表达式)
{
执行语句;
}条件表达式只有true和false两种结果。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语句练习:
需求:春 3、4、5 夏6、7、8 秋9、10、11 冬12、1、2 定义一个程序,对用于输入的程序打印出相应的季节。
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(表达式)表达式中被选择的内容只能支持四种类型 byte、short、int、char
备选答案并没有指定的顺序,但是执行肯定从第一个case开始,将每个case都执行完。如果其中有匹配的,执行完,通过该case的break跳出结束。如果没有,则执行default。
Switch语句结束只有两种情况:1、执行到break 2、执行到switch语句结束。
Default:如果default后没有break,紧跟其后的case会被视作default内容被执行能执行的语句,直到break结束。
若case1、case2、case3的执行语句是相同的话,为提高代码复用性,即可用switch语句的另一特性:
case 1:
case 2:
case 3:
执行语句;
break ;
If和switch语句的应用场景:
1、如果对具体个数的数值进行判断,用if可以,用switch也可,建议使用switch。因为switch 会将被选择的答案加载至内存中,选择效率稍高。
2、如果要对数据区间判断,用if语句。
3、如果运算结果是boolean类型,毫无疑问,用if语句。
三、循环结构
代表语句:while、do 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(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;(循环体)
}初始化表达式只执行一次。
for(int x=1;x<3;x++)中的x变量的任务只是为了控制循环的次数,在for循环结束后,x在内存中分配的存储空间即被释放。
例:for(int x=1;x<3;x++){---}System.out.println("x="+x);编译会失败。
For循环和while循环是可以互换的。
如果定义的变量只是为了控制循环次数而存在的话,可将变量定义在for循环中。如果定义的变量被循环操作后,后续的程序还会使用该变量循环后的结果,就把它定义在循环外边。这就是for与while的区别所在。
For语句的细节:1、for(int x=1,y=1;x<3;x++,y++)同时声明两个变量,可以定义多个表达式。2、for( ; ; )初始化表达式,循环条件、循环后的操作表达式都可省略。
For( ; ;)for语句的最简单无限循环格式。
While(true)while语句的最简单无限循环格式。
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 是一个回车符。转义字符只运用在字符、字符串中。
for(int 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
共有四行,外循环可为for(int x=0;x<=4;x++)而每行都是从4开始,所以内循环中的初始化值始终是4 ,内循环for(int y=4;y>x;y--)
四、其他流程控制语句
Break(跳出)应用范围:1、switch语句 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);
}结果是012。Break只可跳出与它相关联的语句。
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。
以毕老师的打油诗结尾:你2 或者不2 ,2 都在那里,不三不四。。。好诗好诗
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
黑马程序员-day03-Java基础之语句
最新推荐文章于 2024-03-14 20:49:58 发布