Java 基础语法
一、 分支结构
- 接下来要学习的 if 条件语句分为三种语法格式,每一种格式都有它自身的特点,下面我们分别进行介绍
1.1 if
- if 语句是指如果满足某种条件,就进行某种处理。
eg:
汪半壁考 Java 考试,
如果考了 100 分
那么就给他唱歌 1 小时
- 在上面的伪代码中,“如果” 相当于 Java 中的关键字 if
- 考了 100 分是判断条件,需要用 ( ) 括起来,“唱歌 1 小时”是执行语句,需要放在 { } 中
if (考了 100 分) {
唱歌 1 小时
}
- 上面的例子就描述了 if 语句的用法,在 Java 中,if 语句的具体语法格式如下:
if (条件语句) { // 条件语句判断是一个布尔值,当值位 true 时,{ } 里面的执行语句才会执行
执行语句;
}
- if 语句的执行流程图
public class Demo1 {
public static void main(String[] args) {
int score = 100;
if(score == 100){
System.out.println("唱歌 1 小时");
}
}
}
2.1 if … else
- if … else 语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理
eg: 要判断一个正整数的奇偶,如果该数字能被 2 整除则是一个偶数,否则该数字就是一个奇数。if … else 语句具体语法格式如下 :
if (条件语句) {
执行语句1;
......
} else {
执行语句2;
......
}
- 上述代码中,判断条件是一个布尔值。当判断条件为 true 时,if 后面 { } 中的执行语句 1 会执行。当判断条件为 false 时,else 后面 { } 中的执行语句 2 会执行。
public class Demo2 {
public static void main(String[] args) {
int num = 10;
if (num % 2 == 0) {
System.out.println("num是一个偶数");
} else {
System.out.println("num是一个奇数");
}
}
}
2.2 if … else if … else
- if … else if … else 语句用于对多个条件进行判断,进行多种不同的处理
eg: 对一个学生的考试成绩进行等级的划分,如果分数大于80分等级为优,否则,如果分数大于70分等级为良,否则,如果分数大于60分等级为中,否则,等级为差.
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}
......
else if (判断语句n) {
执行语句n;
} else {
执行语句n+1;
}
- 上述格式中,判断条件是一个布尔值。当判断条件 1 为 true 时,if 后面 { } 中的执行语句 1 会执行。当判断条件 1 为 false 时,会继续执行判断条件 2,如果为 true 则执行语句 2,以此类推,如果所有的判断条件都为 false,则意味着所有条件均未满足,else 后面 { } 中的执行语句 n+1 会执行
public class Demo3 {
public static void main(String[] args) {
int score = 75;//定义学生分数
if (score > 80) {
System.out.println("优");
} else if (score > 70) {
System.out.println("良");
} else if (score > 60) {
System.out.println("刚刚好");
} else {
System.out.println("差");
}
}
}
2.3 if 嵌套
public class Demo4 {
double height = 110;
double weight = 1110;
if (height >= 110) {
System.out.println("你很优秀");
if (weight >= 1110) {
System.out.println("陈独秀,请坐!");
} else {
System.out.println("你还是好好学java吧!");
}
} else {
System.out.println("你需要更加完美!");
}
}
二、 选择结构
- switch … case 语法是 Java 里面的选择结构
switch (值) {
case 常量1 :
要执行代码;
break;
case 常量2 :
要执行代码;
break;
...
default :
要执行代码;
break;
}
- switch 的值可以是 byte、short、int、char、String(1.7)、enum(1.5)
switch (1) {
case 1 :
System.out.println("礼拜一上班");
break;
case 2 :
System.out.println("礼拜二出去游玩");
break;
case 3 :
System.out.println("礼拜三搬砖");
break;
default :
System.out.println("自嗨");
break;
}
- switch 在什么情况下终止: 两种情况: 遇到 break 遇到 switch 的右大括号
- case 后面 只可以跟常量 case 后面 的常量值是不允许重复出现 default 可以省略,也可以出现在 switch 语句的任意位置 default 里的代码,一定是在所有的 case 都不匹配的情况
三、 循环结构
- 什么是循环 ?
- 给班上学生打印试卷,打印机循环了 n 次
- 控制台打印一千条 “我爱编程,变成使我快乐!”
- 反复的执行某一段程序
3.1 三种循环
3.1.1 while 循环
- while 循环语句和选择结构if语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while 语句会反复地进行条件判断,只要条件成立,{ } 内的执行语句就会执行,直到条件不成立,while 循环结束
while (循环条件) {
执行语句;
......
}
- 在上面的语法结构中,{ } 中的执行语句被称作循环体,循环体是否执行取决于循环条件。当循环条件为 true 时,循环体就会执行。循环体执行完毕时会继续判断循环条件,如条件仍为 true 则会继续执行,直到循环条件为 false 时,整个循环过程才会结束.
- 打印 1 ~ 10
public class Demo {
public static void main(String[] args) {
int x = 1;//初始化变量x 赋值1
while (x <= 10) {//循环条件
//满足条件时
System.out.println("x = " + x);
x++;//x 进行自增
}
}
}
- 在上述代码中,x 初始值为 1,在满足循环条件 x <= 10 的情况下,循环体会重复执行,打印 x 的值并让 x 进行自增。因此打印结果中 x 的值分别为 1、2、3、4 …。大家要注意的是,代码x++ 用于在每次循环时改变 x 的值,从而达到最终改变循环条件的目的。如果没有这行代码,整个循环会进入无限循环的状态,永远不会结束。
3.1.2 for 循环
- for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。for循环语句的语法格式如下
for (初始化表达式; 循环条件; 操作表达式) {
执行语句;
......
}
- 在上面的语法结构中,for 关键字后面 ( ) 中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用 “;” 分隔,{ } 中的执行语句为循环体
- 接下来分别用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,通过序号来具体分析for循环的执行流程。具体如下:
for (1;2;4) {
3
}
第一步,执行1
第二步,执行2,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步
第三步,执行3
第四步,执行4,然后重复执行2 - 3 - 4 - 2 - 3 - 4
当 2 不满足时,退出循环
- 接下来通过一个案例对自然数1~4进行求和,如下所示
public class Demo6 {
public static void main(String[] args) {
//定义一个sum变量求和
int sum = 0;
for(int i = 1;i <= 4;i++){
sum += i;
}
System.out.println("sum = " + sum);//10
}
}
- 上述代码中,变量 i 的初始值为 1,在判断条件 i<=4 为 true 的情况下,会执行循环体sum+=i,执行完毕后,会执行操作表达式 i++,i的值变为 2,然后继续进行条件判断,开始下一次循环,直到 i=5 时,条件 i<=4 为 false,结束循环,执行 for 循环后面的代码,打印 “sum=10”
循环次数 | sum | i |
---|---|---|
第一次 | 1 | 1 |
第二次 | 3 | 2 |
第三次 | 6 | 3 |
第四次 | 10 | 4 |
3.2.3 do … while
- do … while 循环语句和 while 循环语句功能类似,其语法结构如下
do {
执行语句;
......
} while (循环条件);
- 在上面的语法结构中,关键字 do 后面 { } 中的执行语句是循环体。do … while 循环语句将循环条件放在了循环体的后面。这也就意味着,循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行
- 接下来使用 do … while 循环语句来实现打印 1~4 之间的自然数
public class Demo7 {
int x = 1;//初始化变量x,赋值为1
do {
System.out.println("x = " + x);
} while (x <= 4);
}
- do … while循环,先执行一次再去判断,无论如何都会执行一次
- 练习: 猜数字游戏
3.1.4 无限循环
- while
while(true){ }
- for
for (;;) { }
3.1.5 嵌套循环
- 嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、for 循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在 for 循环中嵌套 for 循环,格式如下:
for ( 初始化表达式; 循环条件; 操作表达式) {
......
for ( 初始化表达式; 循环条件; 操作表达式) {
......
}
......
}
- 接下来通过一个练习,来实现使用“*”打印直角三角形,如下所示
public class Demo8 {
public static void main(String[] args) {
for ( int i = 1; i <= 4;i++ ) { //外层循环
for (int j = 1;j<=i ;j++) { //内层循环
System.out.print("*");//打印不换行,println这个是打印换行
}
System.out.println();
}
}
}
3.2 跳转语句
3.2.1 break
- 在 switch 条件语句和循环语句中都可以使用 break 语句。当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码
public class Demo9 {
public static void main(String[] args) {
int x = 1; // 定义变量x,初始值为1
while (x <= 4) { // 循环条件
System.out.println("x = " + x); // 条件成立,打印x的值
if (x == 3) {
break;
}
x++; // x进行自增
}
}
}
3.2.2 标记
public class BreakDemo {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
AAA: for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
if (i > 4) { // 判断i的值是否大于4
break AAA; // 跳出外层循环
}
System.out.print("*"); // 打印*
}
System.out.print("\n"); // 换行
}
}
}
3.2.3 continue
- continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环
public class ContinueDemo {
public static void main(String[] args) {
int sum = 0; // 定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // i是一个偶数,不累加
continue; // 结束本次循环
}
sum += i; // 实现sum和i的累加
}
System.out.println("sum = " + sum);
}
}