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 (初始化;布尔表达式;更新){
    //执行内容
}
  1. 最先执行初始化步骤,可以声明一种类型,可初始化多个循环控制变量,也可以是空语句。
  2. 检测布尔表达式的值,若为true执行循环体;为false循环重视
  3. 执行一次循环后,更新循环控制变量
  4. 再次检测布尔表达式,循环以上步骤

练习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();
}
posted @   chachan53  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示