一、基本结构
Java语言中共有三种基本逻辑结构:顺序结构、选择结构、循环结构
1.顺序结构
语句执行的基本顺序按照各语句出现的位置先后顺序执行。
2.选择结构
选择结构根据条件来控制代码的执行分支,也叫分支结构。包括两种:if语句、switch语句。
-
if语句
if语句中的条件表达式可以是关系表达式、逻辑表达式、算术表达式等
①单分支结构
if(条件表达式)
语句/语句块
②双分支结构
if(条件表达式){
语句/语句块1;
} else
语句/语句块2;
③多分支结构
if(条件表达式1){
语句/语句块1;
} else if(条件表达式2){
语句/语句块2;
}…
else if(条件表达式n){
语句/语句块n
}else
语句/语句块n+1;
④if语句的嵌套
if(条件表达式1){
if(条件表达式11){
语句/语句块1;}
else{
语句/语句块2;} -
switch语句
switch语句是java 的多路分支语句,提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。不能做switch语句的参数类型有:long,float,double。
语法结构:
switch (表达式){
case 值1 : 语句1
break;
case 值2 : 语句2
break;
…
default : 语句n
break;
}
3.循环结构
循环结构是指重复执行某段程序直到一个结束条件出现。java有三种循环结构:for、while、do-while
-
for循环
for循环语句是计数型循环语句,一般用于已知循环次数的情况,所以也叫定次循环。
格式:
for(初始语句;判断语句;步进){
语句块;
}
for语句的执行顺序是:初始语句→判断语句→语句块→步进;
for语句也有循环嵌套,将另一个for语句嵌套到上一个for语句中实现多次循环。
for(初始语句;判断语句;步进){
for(初始语句;判断语句;步进)
语句块;
} -
while循环
while循环语句当控制表达式为真时,while语句重复执行一个语句或语句块。
格式:
while(控制表达式){
语句块(循环体);} -
do-while循环
do-while循环总是先执行循环体,然后再计算表达式,因此它的循环体至少被执行一次。
格式:
do{
语句块(循环体);
}while(表达式);
*4.跳转语句
跳转语句多用于无条件的转移控制,使用跳转语句执行分支,该语句会导致立即传递程序控制。跳转语句有:break、continue、return
- break语句
break语句一般用在switch语句中,用来终止一个语句序列,或用在循环结构中,用来退出一个循环。(直接结束所有的循环!)
①使用break退出循环
强制退出循环,忽略循环体中的任何其他语句和循环条件的测试。
②带标签的break
终止一个或者几个代码块。要终止的代码块开头加break标签即可。 - continue语句
结束当前循环,本趟循环,结束之后,后面的所有代码不执行
①带标签的continue语句
用于多层循环中,标签名定义在程序中外层循环语句的前面,用来标志这个循环结构。
②不带标签的continue语句
在while和do-while循环中,continue语句使控制直接转转移给控制循环的条件表达式,然后继续循环过程。在for循环中,循环的反复表达式被求值,然后执行表达式,循环继续执行。 - return语句
return语句用来于终止方法的执行并将控制返回给调用方法。如果方法有返回类型,return语句必须返回这个类型的值;如果方法为void类型,应使用没有表达式的return语句。
二、举个栗子
1.用if语句判断输入的一个年份是不是闰年
闰年判断:如果能整除4并且不能被100整除,或者能整除400
代码
public class TestDemo2 {
public static boolean isLeadYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true;
}
return false;
}
public static void main(String[] args) {
System.out.println("请输入一个年份:");
Scanner scanner = new Scanner(System.in);//扫描类
int a = scanner.nextInt();//从键盘获取数字
boolean flg = isLeadYear(a); //返回布尔类型
System.out.println(isLeadYear(a));
}
}
实现结果:
2.判断一个数是不是素数
代码:
public static boolean isPrime(int num) {
if (num == 1) {
System.out.println("数字1既不是素数也不是质数");
return false;
} else {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
public static void main(String[] args) {
System.out.println("请输入一个数字:");
Scanner scanner = new Scanner(System.in);//扫描类
int a = scanner.nextInt();//从键盘获取数字
boolean flg = isPrime(a);
System.out.println(isPrime(a));
}
}
实现结果: