三种逻辑结构
Java中也有三种逻辑结构:
1,顺序结构
2,选择结构
3,循环结构
(一)顺序结构
顺序结构即按照顺序执行:
举例代码如下:
//以下代码按照顺序执行
//计算两个数的和
public class Example{
public static void main(String[] args){
int num1 = 2;
int num2 = 4;
int sum = num1 + num2;
System.out.println("sum = "+sum);
}
}
运行结果如下:
(二)分支结构
分支结构即选择结构。
1,if 结构
基本数据类型比较(即表达式值)可以用 bool 类型。
引用数据类型比较(即表达式值) 应该使用 equals。
(字符串和字符串比较不能用 ==,应该用equals)
Java中没有 1,0 表示真假。用bool值表示真假,true为真,false为假。
形式1:
if(布尔表达式){
//条件满足时执行代码
}
else{
//条件不满足时执行代码
}
举例如下:
//找出两个数中的最大值
public class Example2{
public static void main(String[] args){
int num1 = 2;
int num2 = 4;
int max = 0;
if(num1 > num2){
max = num1;
}
else{
max = num2;
}
System.out.println("max = "+max);
}
}
运行结果如下:
形式2:
if(布尔表达式){
//条件满足时执行代码
}
else if(布尔表达式){
//条件满足时执行代码
} ...
else{
//条件都不满足时执行代码
}
举例如下:
//以下代码是找出三个数中的最大值
public class Example2{
public static void main(String[] args){
int num1 = 2;
int num2 = 4;
int num3 = 8;
int max = 0;
if(num1 > num2){
max = num1;
}
else if(num2 > num3){
max = num2;
}
else{
max = num3;
}
System.out.println("max = "+max);
}
}
运行结果如下:
2,switch结构
如果有多个值进行判断,则使用switch结构。
注意:
- switch后面的常量可以为 数字,枚举,字符,字符串;
C语言中switch后面的常量只能为 数值(常量,常量表达式都可以) 或字 符。 - 若多个case对应的值一样,则只写一条语句即可。
- case命令后最好加 break 或者 continue,就不用继续执行下面的语句。
- 命令后如果超出一条语句,用大括号括起来最好。
switch结构形式为:
//输入第几天,判断是星期几
//如果输入的数字不在1-7内,则用default判断错误
switch(数字|枚举|字符|字符串){
case 内容1 : {
内容满足时执行语句;
[break;]
case 内容2 : {
内容满足时执行语句;
[break;]
} ...
default:{
内容都不满足时执行语句;
[break;]
}
}
运行结果如下:
举例如下:
//输入数字,判断是 工作日还是休息日
//多个case对应一个执行语句。
public class Example2{
public static void main(String[] args){
int week = 5;
switch(week){
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
break;
case 5:
System.out.println("今天是星期五");
break;
case 6:
System.out.println("今天是星期六");
break;
case 7:
System.out.println("今天是星期天");
break;
}
}
}
public class Example2{
public static void main(String[] args){
int week = 5;
switch(week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("今天是工作日");
break;
case 6:
case 7:
System.out.println("今天是休息日");
break;
}
}
}
运行结果如下:
(三)循环结构
循环使用原则:
- 对于不知道循环执行次数,但知道循环结束条件的,使用while.
- 明确知道循环次数的,使用for2. 明确知道循环次数的,使用for.
1,while 循环
while(循环结束条件判断){
循环语句;
修改循环结束判断;
}
2,do…while循环
do…while语句的特点:最少执行一次。
do{
循环语句;
修改循环结束判断;
}
while(循环结束条件判断);
3,for循环
for(循环初始化;循环结束判断;修改循环结束条件){
循环体;
}
具体问题实现上述三种循环:
打印1-4之间的自然数
1,使用while 循环
public class Example2{
public static void main(String[] args){
int num = 1;
while(num <= 4){
System.out.print(num+"\t");
num ++;
}
}
}
运行结果如下:
2,使用do … while循环
public class Example2{
public static void main(String[] args){
int num = 1;
do{
System.out.print(num+"\t");
num++;
}
while(num <= 4);
}
}
运行结果如下:
3,使用for 循环
public class Example2{
public static void main(String[] args){
for(int num = 1;num <= 4;num++){
System.out.print(num+"\t");
}
}
}
运行结果如下:
- 控制循环
(1)continue
执行到此语句时会跳过当前循环的剩余部分,返回循环判断。
(2)break
直接跳出循环。
举例如下:
1,continue控制循环
//找出1-4中不能被2整除的数
public class Example2{
public static void main(String[] args){
int num = 0;
for(num = 1;num <= 4;num++){
if(num % 2 == 0){
continue;
}
else{
System.out.print(num+"\t");
}
}
}
}
2,break控制循环
//在1-4的数中,一旦遇到某个数能被2整除,则退出整个循环
public class Example2{
public static void main(String[] args){
int num = 0;
for(num = 1;num <= 4;num++){
if(num % 2 == 0){
break;
}
else{
System.out.print(num+"\t");
}
}
}
}