Java的三大结构
——————————————————————————————————————————————————————————————————————
三大结构是指:
- 顺序结构
- 选择结构
- 循环结构
——————————————————————————————————————————————————————————————————————
1.顺序结构
java默认的代码执行顺序,就是从上 向下,从左向右,顺序执行
2.选择结构
根据条件判断,只有满足判断条件的才执行。
(1)if 判断选择语句(有三种方式格式)
第一种格式:
if(判断条件){
如果满足判断条件要执的代码
}判断条件最终的结果,就是两个值,true false。 所以判断条件,可以写boolean 类型的变量也可以写, 比较表达式。 * 如果if 选择条件语句,后面只有 一句代码,可以省略大括号 但是,建议大家,都写上
第二种格式:
if(判断条件){
如果满足条件,要执行的代码
}else{
如果不满足条件,要执行的代码。
}
第三种格式:
if(判断条件1){
如果满足判断条件1,要执行的代码
}else if(判断条件2){
如果满足判断条件2,要执行的代码
}else{
以上判断条件都不满足,要执行的代码。
}
代码示例:
import java.util.Scanner;
class IfTest {
public static void main(String[] args) {
//定义一个变量及格线的分数,为60分
int ji_ge = 60;
//创建一个键盘录入对象。
Scanner sc = new Scanner(System.in);
System.out.println("请录入您的考试成绩:");
//用键盘录入对象,接收一个 整型的值,int类型
int result = sc.nextInt(); //读取一个整数
/* if语句,判断,result 结果是否大于ji_ge
那么就及格,否则,不及格。
if(){}else{} 语句,如果满足条件走第一个判断体,
否则进入else的判断体
*/
if(result >= ji_ge && result <= 100 ){
System.out.println("恭喜你!您的考试成绩,及格了!");
}else if (result < 60 && result >= 0){
System.out.println("很遗憾,你的考试成绩,不及格!");
}else{
System.out.println("您输入的考试成绩有误!");
}
}
}
(2) if语句的嵌套
if(判断条件){
满足条件后, 要执行的代码。
if(满足第二个条件){
满足第二个条件,要执行的代码!
}else if(满足第三个条件){
满足第三个条件,要执行的代码!
}else {
}
}else{
不满足条件,要执行的代码。
}
(3)if语句 转换为三元表达式。
if(){}else{ }
三元表达式的写法:
(判断条件)? 结果1: 结果2;
如果判断条件为true ,三元表达式 的最终结果就是——结果1
如果判断条件为false ,三元表达
式的最终结果就是——结果2
(4)switch条件匹配语句
第一种:switch(判断的条件){
case 判断条件可能的值1 :4
如果匹配该值1,要执行的代码;
break;
case 判断条件可能的值2 :
如果匹配该值2,要执行的代码;
break;
……
default :
执行默认的代码。
break;
}
第二种:default 语句,可以放在 witch中的任何位置。
前面,中间,后面都可以。
switch 的注意事项
switch 语句中,如果没有写break
那么 表示switch 语句没有结束, 会顺序向下继续匹配。
这个问题的出现,我们称之为case 穿透现象。
如果我们写的代码,不需要case穿透,那么就会影响结果
如果是 switch 语句中,最后一个
匹配项,可以省略break不写,但是,建议都写上。
代码示例
import java.util.Scanner;
class TestSwitch2 {
public static void main(String[] args) {
//1、导包Scanner。 创建一个键盘录入对象,Scanner
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个您想查询对应季节的月份:(1-12)");
//2、调用scanner 类的nextInt() 接收一个月份对应的数值。
int month = sc.nextInt();
//3、用switch 语句,匹配刚才键盘录入的数值。
switch(month){
default :
System.out.println("输入的月份对应超出范围,无法判断属于个季节。");
break;
case 1 :
case 11 :
case 12 :
System.out.println("您输入的月份对应是是冬季。");
break;
case 2 :
case 3 :
case 4 :
System.out.println("您输入的月份对应是是春季。");
break;
case 5 :
case 6 :
case 7 :
System.out.println("您输入的月份对应是夏季。");
break;
case 8 :
case 9 :
case 10 :
System.out.println("您输入的月份对应是是秋季。");
break;
}
}
}
switch case 语句 jdk版本问题
case 后面跟的是常量:具体的值。
整数常量
小数常量
布尔常量
字符常量
jdk版本 1.5 之后,加上枚举 eumlation
jdk版本 1.7 之后,加上了字符串 常量
3.循环结构
(1)for循环
for(初始化变量; 判断条件; 控制变量变化范围表达式 ){ 循环体; }
代码示例
/**
* 通过for循环,来输出 10个数,从1到10,不断增长。
*
* 通过for循环,来进行数据的获取。
* */
public class TestFor2 {
public static void main(String[] args) {
// for alt+/快捷提示,for循环语句
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
for循环注意事项:
1>注意 你的for循环中,判断条 件,控制条件,可能会造成死循环
2>有大括号的的地方,后面不需要 加分号
没有大括号结束的代码,必须后面加分号 在小括号内的,
写的表达式结束,也不需要加分号
<3>for循环()中,三个重要的表达式:
分别是:初始化条件
判断条件
控制条件
这个三个条件,需要逻辑关系正确,否则会造成循环错误
(2)while 的基本格式1:
while(判断条件){
循环体;
}
while 的基本格式2:
初始化条件设置;
while(判断条件){
循环体;
控制条件,让初始化条件发生变化。
}
代码示例
public class TestWhile2 {
public static void main(String[] args) {
// 1、定义一个初始化条件变量,初始值为1;
int a = 1;
// 2、定义一个求和 的变量 sum,初始值为0;
int sum = 0;
// 3、开始循环,判断条件是初始化变量,小于等于10
while(a <= 10){
//4、循环体中,让求和变量,不断累加。
sum = sum + a;
//5、执行完求和变量累加之后,让初始化变量,自增一次。
a++;
}
//6、循环结束完,输出打印,求和变量的最终结果。
System.out.println(sum);
}
}
(3)do while 循环的基本结构:
初始化条件。
do{
循环体;
控制条件,让初始化条件发生变化
}while(判断条件);
三种循环语句的区别
for循环
最简便的循环,且初始化等变量都在循环体内,当我们循环结束不需 要循环条件的时候,变量会自动销毁,在内存中回收,节省空间。
使用场景: 一般用于固定次数的循环。 也是最常用的循环。
如果写代码的过程中,不知道该用哪个循环,就用for循环。
while 循环
while 循环,一般比较灵活,可以用于 判断条件,多种情况的时候,
常用于,创建一个死循环,然后根据现实使用情况,来结束该死循环
do while 循环。
do while 循环的最大的特点,就是循环判断条件运行之前,先执行一 次,循环体中的代码。其他的while循环无差别。