程序流程控制分为:
判断结构
选择结构
循环结构
判断结构
第一种:
if(条件表达式)
{
执行语句;
}
第二种:
if(条件表达式)
{
执行语句;
}esle{
执行语句;
}
第三种:
if(条件表达式){
执行语句;
}else if(条件表达式){
执行语句;
}
class IfTest2
{
public static void main(String[] args)
{
/*
一年有四季。
春季:3 4 5
夏季:6 7 8
秋季:9 10 11
冬季:12 1 2
根据用户输入的月份,给出对应的季节。
*/
int month = 8;
if(month<1 || month>12)
System.out.println(month+"月没有对应的季节");
else if(month>=3 && month<=5)
System.out.println(month+"月是春季");
else if(month>=6 && month<=8)
System.out.println(month+"月是夏季");
else if(month>=9 && month<=11)
System.out.println(month+"月是秋季");
else
System.out.println(month+"月是冬季");
/*
if(month==3 || month==4 || month==5)
System.out.println(month+"月是春季");
else if(month==6 || month==7 || month==8)
System.out.println(month+"月是夏季");
else if(month==9 || month==10 || month==11)
System.out.println(month+"月是秋季");
else if(month==12 || month==1 || month==2)
System.out.println(month+"月是冬季");
else
System.out.println(month+"月没有对应的季节");
*/
}
}
if语句特点: a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算 完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是 否是true 或者 false;
注意: if判断结构中{}花括号必须成对成对的写。括号开头与括号结尾对齐。代码更加规范,阅读性更强。
选择结构
switch
格式:
格式:
switch(表达式)//byte、short、int、char
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
class SwitchTest
{
public static void main(String[] args)
{
/*
用户输入的数据对应的出星期。
*/
int week = 1;
switch(week)
{
default:
break;
case 1:
System.out.println(week+"对应的是星期一");
break;
case 2:
System.out.println(week+"对应的是星期二");
//break;
//...以此类推。
}
/*
季节的示例。
*/
int month = 13;
switch(month)
{
case 3:
case 4:
case 5:
System.out.println(month+"月对应的是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month+"月对应的是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month+"月对应的是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(month+"月对应的是冬季");
break;
default:
System.out.println(month+"月没有对应的季节");
//break;
}
// System.out.println("Hello World!");
}
}
(1)、 switch语句后面小括号中表达式的值必须是整型(处long类型以外)或字符型。
(2)、 case后面的值可以是常量数值,如1、2;也可以是个常量表达式,如2+2;但不能是变量或带有变量的表达式,
如a*2
(3)、 case匹配后,执行匹配块里的程序代码,如果没有遇见break会继续执行下一个的case的内容,
直到遇到break语句或者switch语句块结束。
(4) switch case 中case和default 位置无顺序,但执行有顺序,从第一个case执行,最后才执行default。
循环结构
while
while循环
(1)、判断while后面的条件是否成立(true/false);
(2)、当条件成立时,执行循环内的操作代码,然后重复执行(1)、(2),直到条件不成立为止。
特点:先判断,后执行。
class WhileTest2
{
public static void main(String[] args)
{
/*
练习:
1~100之间 6的倍数出现的次数。
要求:自己独立完成思想的书写。和步骤的文字描述。
*/
// 计数器思想
int x = 1;
int count = 0;
while(x<=100)
{
if(x%6==0)
count++;
// System.out.println("x="+x);
x++;
}
System.out.println("count="+count);
}
}
do while
do...while循环
执行过程
(1)、先执行一遍循环操作,然后判断循环条件是否成立。
(2)、如果成立继续执行(1)(2),直到条件不成立为止,程序运行结束。
特点:先执行,后判断。
语法:
do{
}while();
class DoWhileDemo
{
public static void main(String[] args)
{
/*
do
{
执行语句;
}while(条件表达式);
*/
int x = 1;
do
{
System.out.println("x="+x);
x++;
}
while (x<1);
/*
do while语句的特点:无论条件是否满足,循环体至少执行一次。
*/
int y = 1;
while(y<1)
{
System.out.println("y="+y);
y++;
}
}
}
for 循环
格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
class ForTest
{
public static void main(String[] args)
{
/*
用for完成累加。
*/
int sum = 0;
for(int x=1; x<=10; x++)
{
sum = sum + x;
}
System.out.println("sum="+sum);
/*
for和while的特点:
1,for和while可以互换。
2,格式上的不同,在使用上有点小区别。
如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。
*/
//打印1~10十个数字
int x = 1;
while(x<5)
{
System.out.println("x="+x);
x++;
}
System.out.println("x===="+x);
for(int y=1; y<5; y++)
{
System.out.println("y="+y);
}
System.out.println("y====="+y);
//无限循环最简单的形式。
// while(true){}
// for(;;){}
什么时候使用循环结构呢?
当对某些代码执行很多次时,使用循环结构完成。
当对一个条件进行一次判断时,可以使用if语句。
当对一个条件进行多次判断时,可以使用while语句。
注意:
在使用循环时,一定要明确哪些语句需要参与循环,哪些不需要。
循环通常情况下,需要定义条件,需要控制次数。
}
}
a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件, 重复找个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是 在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
执行过程:
<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环
特点:相比 while 和 do...while 语句结构更加简洁易读
需要留心的几个小细节:
1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作
b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象
c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,
2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值
3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级
c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循 环多少次,而是根据某些条件,来控制循环。
跳转循环语句continue
continue的作用是跳过循环体中剩余的语句执行下一次循环。
作用范围:循环结构
如果continue单独存在时,下面不要有任何语句,因为执行不到。
java多重循环
循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。
在二重循环中,外层循环每执行一次,内层循环要执行一圈。
二重循环中: 外层循环每执行一次,内层循环要执行一圈。