三大控制结构
顺序结构,选择结构,循环结构;三种不同的结构都有一个共同点,就是它们都只有一个入口,也只有一个运行出口。
顺序结构
程序基本的控制结构,一种自上而下的运行方式,即程序会按代码一行一行的执行(顺序执行语句),其实宏观上,程序的正常运行就是一种自上而下的顺序结构。有一些程序并不按照顺序执行语句,这个过程可以称作控制转移,它由另外两大控制结构决定,即“选择结构”,“循环结构”。
选择结构
选择结构,选择结构一般都是由条件决定程序的执行顺序,即程序走到选择结构的分支语句时,通过条件的判断,从而改变的程序的走向。
选择结构由两种语句完成,一种是if-else语句,另一种是switch-case语句
if-else语句
使用方式:
if(条件表达式){
语句1
}else{
语句2
}
解释:if-else语句,小括号内写的是条件表达式,返回值类型为boolean类型,即括号内表达式的值只有true或false,当条件表达式返回true时,程序执行语句1,当返回false时,程序执行语句2
例如:
package test;
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
if(a+b>=30){
a = a + 10;
}else{
b = a +10;
}
System.out.println(“a的值为:”+a);
System.out.println(“b的值为:”+b);
}
}
输出结果: a的值为:20 b的值为:20
条件表达式 a+b >= 30返回true,这时程序执行了a = a +10,程序就会退出if-else控制语句,开始输出打印a,b的值。
if语句
int a = 10;
int b = 20;
if(a+b>=30){
a = a + 10;
}
System.out.println(“a的值为:”+a);
System.out.println(“b的值为:”+b);
if-elseif-else语句
例如:
package test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//创建扫面类对象sc
Scanner sc = new Scanner(System.in);
//使用扫描类控制接收学生的成绩
System.out.println(“请输入你的考试成绩:”);
int score = sc.nextInt();
if(score>=90){
System.out.println(“你的成绩等级为A”);
}else if (score>=75) {
System.out.println(“你的成绩等级为B”);
}else if (score>=60) {
System.out.println(“你的成绩等级为C”);
}else {
System.out.println(“你的成绩等级为D”);
}
//关闭扫描对象
sc.close();
}
}
if-else语句多了两个esleif(条件表达式)的判断语句,elseif()个数可以根据需要自行添加多个,或者只有一个,在if-else分支语句中,只有if和elseif是可以带着条件表达式的,而else后面是不跟着条件表达式的。
多分支语句switch-case
在程序选择结构中,多分支语句的时候如果只用if-else控制会比较繁琐,所以java还提供了switch-case语句
使用方式:
switch(条件表达式)
{
case1:语句1;break;
case2:语句2;break;
...
default:最后一个语句;break;
具体怎么选择if-else语句,switch-case语句,当条件情况少的时候,推荐使用if-else,当条件多了的时候就是用switch-case语句。
循环结构
程序的又一重要控制结构,循环结构,有时候我们可能会执行某一个动作,如果没有循环结构,我们可能只能反复的书写代码执行,如从1输出到100,我们可能就要写100条输出语句,而循环结构,可以让我们只写一条。
for循环
for循环,是循环结构中的一种循环方式,一般是在知道循环次数的情况,使用for循环
例如:从1输出到100
代码演示:
package test;
public class Test {
public static void main(String[] args) {
for(int i = 1; i <= 100; i++){
System.out.print(i+” “);
}
}
}
for循环最基本的使用方式,在输出语句的时候选择了print(),它和println()输出的区别是print()方法输出的内容不会换行,而是用println()方法,输出的时候会自动给我们换行。
for()循环详细讲解:
for(①表达式; ②结束条件; ④步长){
③执行语句;
}
在for循环里面,一定会提供一个初始常量即①,然后是结束条件②,再来是③执行语句,最后是步长④
程序运行顺序
第一次:①—>②—>③—>④
第二次:②—>③—>④
第三次:②--->③--->④
....
直到结束条件不满足了就会停止循环
while循环
一般不知道循环的具体次数我们都会选择while循环或者do-while循环
public class Test {
public static void main(String[] args) {
int i = 1;
while(i<=100){
System.out.print(i+” “);
i++;
}
}
}
先定义一个计数变量i,然后控制条件i<=100满足就执行循环体输出语句,然后i++;达到控制循环的作用
while循环详解:
①定义循环变量初值
while(②控制条件){
③循环体
④步长
}
第一次:①--->②--->③--->④
第二次:②--->③--->④
第三次:②--->③--->④
....
直到结束条件不满足了就会停止循环
do-while循环
do-while循环相对while循环来说,差别就是do-while会先执行一次,再进行条件的判断,而while循环上来就判断,然后才是执行。
例如:
package test;
public class Test {
public static void main(String[] args) {
int i = 1;
do{
System.out.print(i+”“);
i++;
}while(i<=100);
}
}
和while循环基本没什么差别,执行的循环体是放在do{}里面,记得while()后面需要加上”;”结束