文章目录
一、Java流程控制语句(三种)
1、顺序结构
自上而下依次顺序执行
2、选择结构
①🔺if 语句
选择/分支/条件语句
只要有一个分支执行,整个if语句就结束
当分支中只有一条java语句时,大括号{}可以省略不写,但为了代码的可读性,建议不要省略
"栗子1"
package javaBasis;
import java.util.Scanner;
/*题目:输入三个正整数,判断能否构成三角形的三边,如果不能,输出“NO”。
如果能构成三角形,判断构成什么三角形?按等边、直角、一般三角形分类,
依次输出对应的三角形类型“Equilateral”、“Right”、“General”。
数据范围限制:1<=a,b,c<=1000
输入
输入一行三个用空格隔开的正整数a,b,c,表示三角形的三条边长。
输出
输出对应三角形的类型,如果不能构成三角形,输出“NO”,
如果是等边三角形输出“Equilateral”,
如果是直角三角形输出“Right”,
其他三角形则输出“General”。
样例输入
3 4 5
样例输出
Right
*/
// 考查:if ~else if else语句
public class IfTest01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
int c = input.nextInt();
double x, y, z;
x = Math.pow(a, 2);
y = Math.pow(b, 2);
z = Math.pow(c, 2);
String type = "Triangle";
// 能构成三角形的三边条件:任意两边之和大于第三边(必须都成立,&&全真才真,一假即假)
if (a + b > c && a + c > b && b + c > a) {
if (a == b && a == c && b == c) {
type = "Equilateral"; // 等边三角形(三边相等)
}else if (x + y == z || x + z == y || y + z == x) {
type = "Right"; // 直角三角形(勾股定理)
}else {
type = "General"; // 其他三角形
}
}
else {
type = "NO";
}
System.out.println(type);
}
}
"栗子2"
package javaBasis;
import java.util.Scanner;
/* 题目:分配任务
在社会实践活动中有三项任务分别是:种树、采茶、送水。依据小组人数及男生、女生人数决定小组的接受任务,
人数小于10人的小组负责送水(输出water),人数大于等于10人且男生多于女生的小组负责种树(输出tree),
人数大于等于10人且男生不多于女生的小组负责采茶(输出tea)。输入小组男生人数、女生人数,输出小组接受的任务。
输入
一行两个空格隔开的数,表示小组中男生和女生的人数。
输出
输出对应的任务。
样例输入
5 3
样例输出
water
*/
// 考查:if-else语句、内嵌if-else语句
public class IfTest02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int boys = input.nextInt();
int girls = input.nextInt();
int total = boys + girls;
String task = "undetermined";
if (total >= 10) {
if (boys > girls) {
task = "tree";
}else {
task = "tea";
}
}else {
task = "water";
}
System.out.println(task);
}
}
② switch语句
"栗子"
package javaBasis;
import java.util.Scanner;
/* 题目:写评语
输入某学生成绩score,根据成绩好坏输出相应评语。
如果成绩在大于等于90,输出“Excellent”;
如果成绩在大于等于80分且小于90分,输出“Good”;
如果成绩大于等于60分且小于80分,输出“Pass”;
成绩小于60分,输出“Fail”。
数据范围限制:0<=score<=100
输入
输入一个整数score,表示学生的成绩
输出
输出对应的评语。
样例输入
65
样例输出
Pass
*/
// 考查:switch语句、case穿透现象
public class SwitchTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int score = input.nextInt();
score /= 10;
String comment = "unknown";
switch(score) {
case 10:
case 9:
comment = "Excellent";
break;
case 8:
comment = "Good";
break;
case 7:
case 6:
comment = "Pass";
break;
default:
comment = "Fail";
break;
}
System.out.println(comment);
}
}
3、循环结构
①🔺for语句
"栗子"
// 九九乘法表
public class ForTest01 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i + "*" + j + "=" + (i * j) + " ");
}
System.out.println();
}
}
}
/* 打印九九乘法表
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
②🔺while语句
"栗子"
package javaBasis;
import java.util.Scanner;
/* 题目:数字之和
对于任意输入的整数,计算其各个数位上的数字之和。
数据范围限制:1<=N<2^31
输入
输入一个正整数N。
输出
输出N的各个位上的数字之和。
样例输入
1234
样例输出
10
*/
public class WhileTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int sum = 0;
while(n != 0){
sum += n % 10;
n /= 10;
}
System.out.println(sum);
}
}
③ do…while语句
二、转向语句(三种)
1、break语句【break;】
(1) 作用:跳出当前所在循环体,顺序执行循环体外层语句。
(2) 使用:① 用在switch语句中,用来终止switch语句执行。
② 用在循环 (for/ while/ do~while)语句中,用来终止循环的执行。
public class BreakTest {
public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
if (i == 5) {
break; // break跳出的是循环,即for,而不是if.
}
System.out.println("i == " + i);
}
System.out.println("我是循环体外的语句A");
System.out.println("我是循环体外的语句B");
System.out.println("我是循环体外的语句C");
}
}
/* 执行结果:
i == 0
i == 1
i == 2
i == 3
i == 4
我是循环体外的语句A
我是循环体外的语句B
我是循环体外的语句C
*/
2、continue语句【continue;】
(1) 作用:跳出当前本次循环,继续下一次循环条件的判断。
注:①执行【continue;】语句,for循环跳过循环体中余下的语句,执行更新表达式,并对条件表达式(循环控制条件)进行判断。while和do-while循环跳过循环体中余下的语句,直接跳到条件表达式(循环控制条件)进行判断。
② 【continue;】语句是终止"本次"循环,接着开始下一次循环,
而【break;】语句则是完全终止整个循环。
public class ContinueTest {
public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
if (i == 5) {
continue;
}
System.out.println("i == " + i);
}
System.out.println("循环体外语句");
}
}
/* 执行结果:
i == 0
i == 1
i == 2
i == 3
i == 4
i == 6
i == 7
i == 8
i == 9
i == 10
循环体外语句
*/
3、return语句【return; 或 return 返回值;】
(1)、作用:结束方法。
(2)、两种表示形式:
① return;
return不跟返回值,即方法声明返回类型为void。当【return;】执行时,return所在方法结束。作用是中断方法(函数)执行,直接返回函数调用处。
② return 返回值;
当【return 返回值;】语句执行,返回值会传递给调用该方法的对象,并声明一个和返回值类型相同的引用来接收返回值。
🍅🍅🍅 以往文章 👇
001_Java语言发展历程
002_Java语言的八大特性
003_浅析JDK、JRE、JVM的区别和联系
004_JDK的下载安装与环境变量的配置
005_常用DOS命令
006_Java关键字、标识符、注释
007_Java八大基本数据类型
008_Java类型转换
009_Java运算符