Java基础:顺序结构、选择结构(if)、循环结构(while、switch、for)
顺序结构
Java的基本结构,从上到下执行,若干个依次执行的处理步骤
选择结构
if单选择结构
if(布尔值表达式){
//为ture的执行内容
}
示例:
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双选结构
if(布尔值表达式){
//为ture的执行内容
}else{
//为false的执行内容
}
示例:
Scanner scanner = new Scanner(System.in);
System.out.println("输入成绩:");
//float形式,考虑小数
float score = scanner.nextFloat();
if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
if多选结构
if(布尔值表达式1){
//布尔值表达式1为ture的执行内容
}else if(布尔值表达式2){
//布尔值表达式2为true的执行内容
}else if(布尔值表达式3){
//布尔值表达式3为true的执行内容
}else{
//以上都不为true的执行内容
}
- if 语句至多有1个else语句,else语句在所有else if后
- 可以有若干个else if语句
- 只执行一个命令
示例:
Scanner scanner = new Scanner(System.in);
System.out.println("输入成绩:");
float score = scanner.nextFloat();
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结构
if结构可以嵌套在其他结构中
switch多选择结构
判断一个变量与一系类值中某个值是否相等,每个值称为一个分支
switch(expression){
case value :
//语句
break;//可选
case value :
//语句
break;//可选
//可以有任意数量的case
default : //可选
//语句
}
case标签必须为字符串常量或者字面量
例1:
char c = 'C';
switch (c){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("2");
break;
case 'C':
System.out.println("3");
break;
default:
System.out.println("7");
}
在JKD7中,表达式结果可以是字符串 (字符的本质是数字)
例2:
String name = "cha";
switch (name){
case "chan":
System.out.println("chan");
break;
case "cha":
System.out.println("cha");
break;
default:
System.out.println("53");
}
反编译
- 反编译 java->class(字节码文件)->反编译(IDEA)
将生成的class文件放入IDEA中阅读
循环结构
while循环
while(布尔表达式){
//循环内容
}
- 当布尔表达式为true时,循环进行;表达式为false时,循环停止
- 少部分情况下需要循环一直执行
- 循环条件一直为true就回造成死循环,需要尽量避免
1+2+3+…+100=?
int i = 0;
int sum = 0;
while (i<=100){
sum = sum + i++;
}
System.out.println(sum);
每次执行完加法后,i自增,在计算完+100后,i自增到101,循环停止。
do…while循环
do…while至少执行一次
do {
//执行内容
}while(布尔表达式);
示例 :1+2+3+…+100=
public static void main(String[] args) {
int i = 0;
int sum = 0;
do{
sum = sum + i++;
}while(i<=100);
System.out.println(sum);
}
while和do…while的对比:
//while结构
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
//do...while结构
System.out.println("===============================");
do{
System.out.println(a);
a++;
}while (a<0);
输出结果:
===============================
0
仅do…while被执行
for循环
- for循环是最有效、最灵活的循环结构
- for循环的执行次数在执行前就确定
- IDEA快捷键,输入fori按Tab
for (初始化;布尔表达式;更新){
//执行内容
}
- 最先执行初始化步骤,可以声明一种类型,可初始化多个循环控制变量,也可以是空语句。
- 检测布尔表达式的值,若为true执行循环体;为false循环重视
- 执行一次循环后,更新循环控制变量
- 再次检测布尔表达式,循环以上步骤
练习1:计算0-100的奇数和与偶数和
//计算1-100间奇数和偶数的和
int sum1 = 0;
int sum2 = 0;
for(int i=0;i<=100;i++){
if(i%2==1){
sum1 = sum1 + i;
}else{
sum2 = sum2 + i;
}
}
System.out.println("奇数和为:"+sum1);
System.out.println("偶数和为:"+sum2);
练习2:用while或for循环输出1-1000间能被5整除的数,并每行输出3个
//初始化循环控制变量i=0,计数器count=0
for(int i=0,count=0;i<=1000;i++){
//当i能被5整除时输出i,并增加count
if(i%5==0){
System.out.print(i);//print输出完不换行
count++;
//当count=3时,进行换行,重置count值
if(count==3){
System.out.println();//println输出完自动换行
count=0;
}else{
System.out.print("\t");
}
}
}
- println输出完自动换行
- print输出完不换行
练习3:打印九九乘法表
for(int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"x"+i+"="+i*j);
if(i==j){
System.out.println();//用于换行
}else{
System.out.print("\t");//制表符,同一行间控制距离
}
}
}
使用双重嵌套的for循环,输出九九乘法表。
(i和j相互替换好像更符合一般书写规律)
其中if…else结构的作用是为了少输出一个制表符,虽然输出看不出来,暂时也不知道会有什么影响,可以取消该结构放入最开始的输出中如:
for(int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"x"+i+"="+i*j+"\t");
}
System.out.println();
}
输出结果:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
增强for循环
- 主要应用于数组或集合
for(声明语句:表达式){
//执行命令
}
声明语句:声明新的局部变量,局部变量的类型应与数组元素的类型匹配。作用域限定于循环语句块中,值于此时数组元素的值相等。
表达式:要访问的数组名,或是返回值为数组的方法
//定义数组
int[] numbers = {10, 20, 30, 40 ,50};
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}
break、continue
-
break在任何循环语句的主体部分均可使用。用于强行退出循环,不执行剩余语句
-
continue语句用在循环语句体中,用于中止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
练习
打印三角形
//打印三角形 5行
for (int i = 1; i <= 5; i++) {
for (int j = 5; j>=i; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
for (int j = 1; j <i; j++) {
System.out.print("*");
}
System.out.println();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix