顺序结构
- JAVA的基本结构,除非特别指明,否则按顺序一句一句执行
- 最简单的算法结构
- 语句与语句之间、框与框之间是按从上到下顺序进行,由若干依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
选择结构
需要判断一个东西是否可行,然后再去执行
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
Scanner scanner=new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
有两个判断,if-else结构
语法:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
//考试分数大于60及格,小于60不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
真实情况存在区间多级判断(大于2)
if(布尔表达式 1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
//考试成绩
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int score=scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score<100 && score>=90){
System.out.println("A级");
}else if(score<90 && score>=80){
System.out.println("B级");
}else if(score<80 && score>=70){
System.out.println("C级");
}else if(score<70 && score>=60){
System.out.println("D级");
}else if(score<60 && score>=0){
System.out.println("不及格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
注意
-
if语句至多有1个else语句,else语句在所有的else if语句之后,同理,多个else if语句,必须在else语句之前
-
一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行
-
嵌套的if结构
例:二分法
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}
}
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句
default://可选
//语句
}
//成绩
//case穿透 //switch匹配一个具体的值
char grade='A';
switch(grade){
case 'A':
System.out.println("优秀");
break;//可选
case 'B':
System.out.println("良好");
break;//可选
case 'C':
System.out.println("及格");
break;//可选
case 'D':
System.out.println("再接再厉");
break;//可选
case 'E':
System.out.println("挂科");
break;//可选
default:
System.out.println("未知等级");
}
循环结构
-
while循环
- 结构:
while(布尔表达式){
//循环内容
}- 只要布尔表达式为true,循环就会一直执行下去
- 多数情况会让循环停下来,需要一个表达式失败的方式来结束循环
- 少部分情况需要一直执行,比如服务器的请求响应监听等(循环条件为true 死循环)
//输出1~100 并计算总和
int i=0;
int s=0;
while(i<100){
i++;
s=s+i;
System.out.println(i);
}
System.out.println("s="+s);
-
do…while循环
- 对于while语句,如果不满足条件,不能进入循环。但有时候即使不满足条件,也需要至少执行一次,do…while语句符合
- 区别
while先判断后执行,dowhile先执行后判断(保证循环体至少执行一次)
do{
//代码语句
}while(布尔表达式);
//输出1~100 并计算总和
int i=0;
int s=0;
do{
s+=i;
i++;
System.out.println(i);
}while(i<=100);
System.out.println("s="+s);
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后执行布尔表达式的值。如果为true,循环体被执行;如果为false,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔值,循环执行上面的过程。
for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for循环执行的次数是在执行前就确定的,语法:
for(初始化;布尔表达式;更新){
//代码语句
}
// 初始化 条件判断 迭代
for(int i=1;i<=100;i++){ //可通过快捷键 100.for+Enter
System.out.println(i);
}
System.out.println("for循环结束!");
//计算0~100之间所有奇数偶数的和
int oddSum=0;
int evenSum=0;
for (int i = 0; i <=100; i++) {
if(i%2!=0){
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
//输出1~1000之间能被5整除的数,并且每行输出三个
for (int i = 1; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if (i % 15 == 0) {
System.out.println();
}
}
//打印九九乘法表
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
增强for循环
用于数组或集合的增强型for循环
for(声明语句:表达式)
{
//代码句子
}
int []numbers={1,2,3,4,5};//定义一个数组
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}