选择结构
在今天的选择结构学习当中我们主要学习了if语句,switch语句,那么我们为什么要学习他们呢?
这是因为在我们经常会面临这样一个问题,那就是面临选择,不管是二选一还是多选一,这个问题会经常出现在我们的面前,那么在Java当中选择结构语句的学习就能很好的解决这个问题。
那么什么是选择结构呢?
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制接下来程序的流程。
- if else条件语句
if语句主要用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种代码之一。
基本格式如下:
if(条件表达式){
当条件为true时执行的代码;
}else{
当条件为false时执行的代码;
}
public class Test {
public static void main(String args[]){
int x = 2; //定义一个整数型常量=2
if( x < 1 ){ //给if语句一个判断条件
System.out.print("你好!"); //如果x满足x<1则打印“你好!”
}else{
System.out.print("再见!"); //如果x不满足x<1则打印“再见!”
}
}
}
因为x=2 不满足x<1;
则打印出结果:
再见!
在if语句中,不光有上述的标准结构,还有以下几类结构:
- 单if形式
if(条件表达式){
当条件为true时执行的代码;
}
- 嵌套if else形式
if(条件1){
条件1为true时执行的代码;
if(条件2){
条件2为true时执行的代码;
}else{
条件2为false时执行的代码;
}
}else{
条件1为false时执行的代码;
}
- if-else-形式
if(条件1){
}else if(条件2){
}else if(条件3){
}else{
}
- switch case语句
switch case语句和if语句一样同属于选择结构语句,但它主要是在多选的情况下使用。
基本格式如下:
switch(变量){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
case 值3:
执行语句3;
break;
........
deafult:
执行语句n;
break;
}
在执行代码的过程中,当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。如果变量与所有的case值都不符合,则执行default语句中的语句。然后跳出循环。
注意:switch只能判断单一的值
switch所要求的变量的数据类型有:byte short int char String 枚举
public class Demo {
public static void main(String args[]){
int i = 2; //定义一个常量值i
//若满足条件i,则返回当前case的值
switch(i){
case 0:
System.out.println("零");
break;
case 1:
System.out.println("一");
break;
case 2:
System.out.println("二");
break;
default:
System.out.println("default");
break;
}
}
}
i=2在该选择结构中case的返回值为“二”;
则打印结果如下:
二
循环结构
为了节省一些不必要的重复性代码的输入和代码冗余等问题,我们引入了循环结构。
循环结构的出现,主要就是为了要解决我们遇到的重复性问题,它的出现,能很好的提高我们代码的简洁度和规范度。
循环的四要素:
1、循环初始化:指什么时候开始循环。
2、循环继续条件:在什么情况下循环继续执行,反过来说就是什么情况下循环结束。
3、循环体:需要被多次循环执行的代码。
4、循环的周期、步长、间距:就是当前循环和下一次循环的变更。
- for循环
for循环是一种循环结构比较简单的循环
基本格式如下:
for(1循环的初始化 ; 2循环的继续条件 ; 4循环的步长 ){
3循环体
}
public class Demo {
public static void main(String args[]) {
//循环初始值为1的整数;循环继续条件为i<7;循环步长为i+1
for(int i = 1; i < 7 ; i = i+1) {
System.out.print("i的值为 : " + x );//输出每一次循环结束后的值
System.out.print("\n");
}
}
}
则打印结果如下:
i的值为 : 1
i的值为 : 2
i的值为 : 3
i的值为 : 4
i的值为 : 5
i的值为 : 6
- while循环
while循环也是一种基本的的循环结构,那么它同上面我们所说过的for循环有什么不一样呢?
这里我们要知道的是for循环一般解决的是循环次数已知的问题,而while循环则一般解决循环条件未知的问题。在这里我们要注意的是,在大多数情况下,while循环和for循环时可以转换的。
while循环基本格式如下:
1.循环的初始化
while(2.循环的继续条件){
3.循环体
4.循环的步长
}
public class Test {
public static void main(String args[]) {
int i = 10; //循环初始化
while( i < 15) { //循环的继续条件
System.out.print("i的值为: " + i);/循环体
i++; //循环的步长
System.out.print("\n");
}
}
}
打印结果如下:
i的值为 : 10
i的值为 : 11
i的值为 : 12
i的值为 : 13
i的值为 : 14
在使用while循环的时候,我们往往会遇到不能确定初始化的情况,这个时后我们要先进入循环,那么这个时候就先使用一个boolean表达式进入循环,它的结构如下:
while(true){
1.循环初始化
2.循环的继续条件
3.循环体
4.循环的步长
}
在这里需要注意的是,这么写while循环的话,逻辑上比较顺畅的,但是有危险,在于本身是死循环,需要在合适的时候用break关键字跳出循环。
- do while循环
在while循环中,如果不满足循环的继续条件,则不能够进入循环,但是有的时候会遇到即使不满足条件也需要执行一次的情况,那么这个时候就需要使用do while循环,do while 循环和 while 循环相似,不同的是,do while 循环至少会执行一次。
基本格式如下:
do { 循环体 环的步长 }while(循环条件);