java流程控制_01(顺序,循环,选择结构)

本文详细介绍了Java编程中的流程控制结构,包括顺序结构、选择结构(if单选择、if多选择、switch多选择)和循环结构(while、do-while、for循环)。并给出了多个实例,如输出能被5整除的数、打印九九乘法表等,深入理解这些基本结构在编程中的应用。
摘要由CSDN通过智能技术生成

2.顺序结构

  • 任何结构都包含顺序结构

3.选择结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
package com.Macong.struct;

import java.util.Scanner;

public class Select03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //if多选择结构
        System.out.println("请输入分数:");


        //判断有无输入
        //如果不是数字或者不是整数,程序结束
        while (scanner.hasNextInt())
        {

            int score = scanner.nextInt();
            if(score==100)
            {
                System.out.println("恭喜100分");
            }else if(score<100&&score>=90)
            {
                System.out.println("优秀");
            }
            else if(score>=80&&score<=90)
            {
                System.out.println("良好");
            }
            else if(score>=70&&score<80){
                System.out.println("中等");

            }
            else if(score>=60&&score<70)
            {
                System.out.println("及格");
            }
            else if(score>=0&&score<60){
            System.out.println("不及格");
            }
            else
            {
                System.out.println("输入错误。请输入0到100之间的数");
            }
        }

            System.out.println("程序结束感谢使用");



     scanner.close();
    }
}

  • 在这里插入图片描述

  • switch多选择

  • 在这里插入图片描述
    在这里插入图片描述
    字节码文件

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.Macong.struct;

public class SwitchDemo02 {
    public SwitchDemo02() {
    }

    public static void main(String[] args) {
        String name = "小马";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 23567:
            if (name.equals("小")) {
                var3 = 1;
            }
            break;
        case 770109:
            if (name.equals("小马")) {
                var3 = 0;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("小马");
            break;
        case 1:
            System.out.println("小");
            break;
        default:
            System.out.println("wrong");
        }

    }
}


package com.Macong.struct;

public class SwitchDemo02 {
    public static void main(String[] args) {
        //JDK7的新特性,表达式可以是字符串;
        //字符的本质还是数字;
        //反编译 java---class (字节码文件) ----反编译

        String name = "小马";
        switch(name)
        {
            case "小马" :
                System.out.println("小马");
                break;
            case "小" :
                System.out.println("小");
                break;
            default :
                System.out.println("wrong");


        }

    }
}

4.循环结构

  • while
  • do – while
  • for 循环
package com.Macong.struct;

public class WhileDemo02 {
    public static void main(String[] args) {
        //计算1+2+3+4.....+100

        int i = 0;
        int sum = 0;
        while (i >= 0 && i < 100) {
            i++;
            //累加器
            sum = sum + i;
        }
        System.out.println("1+2+3....100=" + sum);

    }
}

1+2+3…100=5050

do while

public static void main(String[] args) {
        //计算1+2+3+4.....+100

        int i = 0;
        int sum = 0;
        do {
            i++;
            //累加器
            sum = sum + i;
        } while (i < 100);
        System.out.println("1+2+3....100=" + sum);

    }

for循环,最重要

  • for 循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
  • for 循环次数。在循环执行前就确定了
    测试一:
  public static void main(String[] args) {
        //for循环解决1+2+3+.....+100
        int i ;
        int sum = 0;
        for(i=1;i<=100;i++)
        {
            sum = sum + i;
        }
        System.out.println(sum);
    }

测试二:计算0到100之间的奇数和偶数的和

package com.Macong.struct;

public class ForDemo02 {
    public static void main(String[] args) {
        //计算0到100之间的奇数和,偶数和
        int i;
        int sum1=0;//放偶数的和
        int sum2=0;//放奇数的和

        for(i=1;i<=100;i++)
        {
            if(i%2==0)
            {
                sum1 = sum1 + i;
            }
            else {
                sum2 = sum2 + i;
            }
        }

        System.out.println("1到100偶数的和:" + sum1);
        System.out.println("1到100奇数的和:" + sum2);
    }
}

1到100偶数的和:2550
1到100奇数的和:2500

4.1、用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

        int i = 0;//上海
        int j = 0;//引入一个j来控制行数

        for (i=1;i<=1000;i++)
        {
           if(i%5==0) {
               System.out.print("  " + i);
               j++;
               if (j % 3 == 0)
               {
                   System.out.println();
               }

解法2:

 /*
       //用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个

        思想:1、用for(),变量i遍历1-1000的数,i%5==0,判断是否是5的倍数。
             2、每行输出3个,用变量j记录输出的个数,来控制换行。
             3、在每行前面输出行号。
 - 先输出行号
 - 再输出满足条件的数字
 - 输完数字以后j++,
         */
      int j = 0;//控制换行   
      //为了减少计算,i+=5;
 for (int i = 0; i <= 1000; i+=5) {
           
            if (j % 3 == 0) {

                System.out.print("   第" + ((j / 3)+1) + "行:   " );
            }

            if (i % 5 == 0) {

                System.out.print("  " + i);
                j++;
                if(j % 3 == 0)
                {
                    System.out.println();
                }

            }


        }

在这里插入图片描述
解法3

  for (int i = 0; i <= 1000; i++) {

            //i分为两种情况,i=0,i!=0;
            //if (i % 3*5 == 0)这是错误的%的优先级和*相同,先计算i%3

            //控制行的模块
            if (i % 15 == 0) {
                if (((i % 15) == 0) && (i != 0)) {
                    System.out.println();
                }
                System.out.print("   第" + ((i / 15) + 1) + "行:   ");
            }
            //符合输出模块
            if (i % 5 == 0) {

                System.out.print("  " + i);
            }



        } 

结果
在这里插入图片描述

4.2、打印九九乘法表

  public static void main(String[] args) {
        int i ;//控制列
        int j ;//控制行


 /*解题思路:把大问题拆分成一个个小问题,逐个解决。写代码不是重点,解决问题才是。
         1.我们先打印第一行。把第一行固定为1
         2.我们在每一行进行输出,寻找列i与行j的关系表达式
         3.每行结束,我们要进行换行
         4.调整样式,每列用制表符
        
         */
        //先控制行,控制行后,列与行的关系。每行结束加一个换行语句。
        for (j=1;j<=9;j++) {
            for (i = 1; i <= j; i++) {
                System.out.print(i+ "x" + j + "=" + j * i + "  ");
            }
            System.out.println();

        }
    } 

在这里插入图片描述

  int numbers[]  = new int[]{1,2,3,4};//定义一个数组
        //int[] numbers ={1,2,3,4}//定义一个数组


        for(int i:numbers)
        {
            System.out.println(i);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值