1判断结构
if语句
if语句的三种格式:
//1
if(条件表达式)
{
执行语句;
}
//2
if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
三元运算符相比于和if else 的好处和弊端:
好处:可以简化if else 代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
//3
if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
if练习:
需求1:根据用户定义的数值不同,打印对应的星期英文。
int num = 3;
if(num ==1)
system.out.println(“monday”);
else if(num ==2)
system.out.println(“tuesday”);
else if(num ==3)
system.out.println(“wednesday”);
else if(num ==4)
system.out.println(“thursday”);
else if(num ==5)
system.out.println(“friday”);
else if(num ==6)
system.out.println(“saturday”);
else (num ==7)
system.out.println(“sunday”);
需求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(“月份不存在”);
//或者如下:
if(x>12 || x<1)
system.out.println(“月份不存在”);
else if(x>=3 && x<=5)
system.out.println(x+”春季”);
else if(x>=6 && x<=8)
system.out.println(x+”夏季”);
else if(x>=9 && x<=11)
system.out.println(x+”秋季”);
else
system.out.println(x+”冬季”);
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结尾结束。
练习 需求2:根据用户指定的月份,打印该月份所属的季节。
3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12,1,2 冬季
int x = 4
switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+”春季”);
break;
case 6:
case 7:
case 8:
System.out.println(x+”夏季”);
break;
case 9:
case 10:
case 11:
System.out.println(x+”秋季”);
break;
case 12:
case 1:
case 2:
System.out.println(x+”冬季”);
break;
default:
System.out.println(月份不存在);
}
if和switch语句很像。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且是符合byte,short, int,char这四种类型。
虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。
其它情况:对区间判断,对结果为boolean类型判断,使用if语句,if的适用范围更广。
3.循环结构
代表语句:while,do while,for
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}
while(条件表达式);
do while特点是条件无论是否满足,循环体至少被执行一次。
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a.for里面的表达式运行的顺序,初始化表达式只读一次,再判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过 程,直到条件不满足为止。
b.while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
c.最简单无限循环格式:while(true){}。for(;;){}。无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
练习:1.获取1~10的和,并打印。
class SumTest1
{
public static void main(String[] args)
{
int sum = 0,x = 1;
while(x <= 10)
{
sum = sum + x;
x++;
}
System.out.println("sum="+sum);
}
}
其实这就是累加思想。
原理:通过变量记录住每次变化的结果。
通过循环的形式,进行累加动作。
2. 1~100之间,7的倍数的个数,并打印。
class MySumTest2
{
public static void main(String[] args)
{
int a = 0,b = 1;
while(b<=100)
{
if(b%7==0)
{
a++;
}
b++;
}
System.out.println("a="+a);
}
}
/*
int count = 0;
for(x=0;x<=100;x++)
{
if(x%7==0)
{
count++;
System.out.println("x="+x);
}
System.out.println("count="+count);
}
*/
/*
int count = 0;
for(x=0;x<=100;x++)
{
if(x%7 !=0)
continue;
count++;
System.out.println(“x=”+x);
}
System.out.println(“count=”+count);
计数器思想:
通过一个变量记录住数据的状态变化。
也需要通过循环完成。
4.语句嵌套形式:语句中含有语句。
循环嵌套。
打印:
*****
****
***
**
*
class MyForDemo
{
public static void main(String[] args)
{
for(int x = 5;x>0;x--)
{
for(int y = x;y>0;y--)
{
System.out.print("*");
}
System.out.println();
}
}
}
九九乘法表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
for(int x=1;x<=9;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(x+"*"+y+"="+x*y+"\t"); // “\t”是制表符,自动对齐。
}
System.out.println();
}
5.其他流程控制语句
break(跳出), continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注:
a.这两个语句离开应用范围,存在是没有意义的。
b.这两个语句单独存在,下面都不可以有语句,因为执行不到。
c.continue语句时结束本次循环继续下次循环。
d.标号的出现,可以让这两个语句作用于指定的范围。
练习:打印出如下图形:
*
* *
* * *
* * * *
* * * * *
class MyForDemo2
{
public static void main(String[] args)
{
for(int x=0;x<5;x++)
{
for(int y=0;y<5-x-1;y++)
{
System.out.print(" ");
}
for(int z=5-x-1;z<5;z++)
{
System.out.print("* ");
}
System.out.println();
}
}
}