首页 > 编程语言 >程序结构(下)

程序结构(下)

时间:2023-09-14 19:02:39浏览次数:25  
标签:case int sum 程序结构 System 循环 public

4.3 循环结构

重复性的去做某一件事情

4.3.1 while循环
• 语法:
while(条件){            
	//代码1
}

程序结构(下)_循环结构

进入while之后进行条件判断,条件为真时执行while后面大括号中的代码,这里的代码执行完后会返回到while条件继续判断,如果条件为假,结束循环的执行

打印1-10之间所有的数 , 属性循环次数非常的明确

public class Main10 {

    public static void main(String[] args) {

        int i=1;

        while (i<=10) {

            System.out.println(i);

            i++;

        }


    }

}

求1-10之间所有数的总和

public class Main9 {

    public static void main(String[] args) {

        int n1=1;

        int sum=0;

        while (n1<=10) {

            sum += n1;  

            n1++;

        }

        System.out.println(sum);


    }

}


1、从上面两个案例中可以分析出循环第一要点,循环控制变量的定义

2、循环条件

3、控制变量的更新,如果控制变量不更新,循环性是死循环

问题,小明到学校上学, 给出一个询问是否毕业,是或否,是呢就不再上学了 打印 去工作,否 打印继续学习(属于循环次数不明确的问题)

import java.util.Scanner;


public class Main11 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("小明是否毕业(是/否)?");

        String isok=input.next(); //循环控制变量  代码冗余

        while("否".equals(isok)){

            System.out.println("继续在千锋学习");

            System.out.println("小明是否毕业(是/否)?");

            isok=input.next(); //循环控制变量

        }

        System.out.println("出去工作");

    }

}
4.3.2 do...while();
语法:
do{
	代码块
}while(条件);   最后有一个分号,一定不要忘掉

程序结构(下)_循环结构_02

执行流程:程序进入do...while循环后,循环重复的操作,无论条件的真与假,至少执行一次,因为循环条件在循环操作之后。如果条件为真,返回到do进行重复执行,如果条件为假,就跳出循环

使用do...while解决Main11中代码冗余的问题:

import java.util.Scanner;


public class Main12 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        String isok=null;

        do{

            System.out.println("继续在学校学习");

            System.out.println("是否毕业");

            isok=input.next();

        }while ("否".equals(isok));

        System.out.println("出去工作");

    }

}

无论怎么样,小明先学习一次,进行询问是否毕业,否就继续循环,是就出去工作

上面的代码还是觉得不太适合,我先先询问小明有没有毕业,如果毕业就不用学习了直接工作

import java.util.Scanner;


public class Main12 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        String isok=null;

        do{


            System.out.println("是否毕业");

            isok=input.next();

            if("是".equals(isok)){  //在这里进行询问毕业的拦截,如果是

                break;	//break;代表提前结束循环的执行

            }

            System.out.println("继续在学校学习"); //将学习放到了询问的后面,进行先询问,如果是毕业了,就不再学了

        }while ("否".equals(isok));

        System.out.println("出去工作");

    }

}

do...while使用场景,一般情况下用于这种循环次数不太明确的地方

4.3.3 for 循环
语法:
		    1                                2                   
for(循环控制变量的定义;循环条件;循环控制变量的更新){
				     3		
				循环操作
}

程序结构(下)_控制变量_03

执行流程: 进入for循环后第一步执行循环控制变量的定义,第二步执行循环条件的判断,第三步执行循环的操作,第四执行控制变量的更新,然后回到第二步,继续判断,如果条件真继续第三步,再走第四步,再到第二步。如果条件为假结束循环。

public class Main13 {

    public static void main(String[] args) {

        for (int i=1;i<=10;i++){

            System.out.println(i);

        }

    }

}

注意:只要是循环的问题可以使用这三个循环结构的任意一个来解决

接下来的内容有利大脑的开发:

问题1:求1-100之间所有数的和

1、循环条件是什么

小于等于100 [循环有明确的循环次数100次]

2、循环控制变量怎么定义(2.1 定义什么 类型的变量。2.2 变量的初始值给不给[如果给,给多少] )

int i=1

3、循环控制变量采用什么样的方式进行更新

i=i+1; i+=1; i++;

4、循环的操作是什么

sum=sum+i;


public class Main14 {

    public static void main(String[] args) {

        int sum=0;//求和变量

        //求和的问题 1-100

        for(int i=1;i<=100;i++){

            //操作

            sum+=i;

        }

        System.out.println(sum);

    }

}

问题2:求1-10之间所有的积

1、循环条件是什么

循环十次,变量小于等于10

2、循环控制变量怎么定义(2.1 定义什么 类型的变量。2.2 变量的初始值给不给[如果给,给多少] )

3、循环控制变量采用什么样的方式进行更新

4、循环的操作是什么

public class Main15 {

    public static void main(String[] args) {

        int sum=1;

        for (int i = 1; i <= 10 ; i++) {

            sum*=i;

        }

        System.out.println(sum);

    }

}

问题3:从键盘输入五个数求和

1、循环条件是什么

5

2、循环控制变量怎么定义(2.1 定义什么 类型的变量。2.2 变量的初始值给不给[如果给,给多少] )

i=1 i<=5

3、循环控制变量采用什么样的方式进行更新

i++

4、循环的操作是什么

int num = input.nextInt();

sum+=num;

import java.util.Scanner;


public class Main16 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int sum=0; //求和

        int num=0;

        for(int i=1;i<=5;i++){

            System.out.println("请输入第"+i+"个数");

            num=input.nextInt();

            sum+=num;

        }

        System.out.println(sum);

    }

}

求1-100中所有偶数和

1、循环条件是什么

循环100次

循环50次

2、循环控制变量怎么定义(2.1 定义什么 类型的变量。2.2 变量的初始值给不给[如果给,给多少] )

i=1

3、循环控制变量采用什么样的方式进行更新

i++; i+=2;

4、循环的操作是什么

if(i%2==0){

sum+=i;

}

int sum=0;

        for (int i = 1; i <= 100; i++) {

            if(i%2==0){

                sum+=i;

            }

        }

        System.out.println(sum);
int sum=0;

        for (int i = 0; i <=100 ; i+=2) {

            sum+=i;

        }

        System.out.println(sum);
ontinue;      代表结束本次循环,提前进入下次循环
continue的使用

public class Main17 {

    public static void main(String[] args) {

        int sum=0;

        for (int i = 1; i <= 100; i++) {

            if(i%2==1) {

                continue;

            }

            sum+=i;

        }

        System.out.println(sum);

    }

}
break和continue

break;结束当前循环的执行

continue;结束本次循环的执行

问题:输入一个年份,月份和日期求当前日期是当年的第几天。

2022 - 7 - 28

2022 1,2,3,4,5, 6

从一月开始到当前月为止,不包含当前月

import java.util.Scanner;

public class Main22 {

public static void main(String[] args) {

  Scanner input = new Scanner(System.in);

  System.out.println("请输入年份:");

  int y=input.nextInt();

  System.out.println("请输入月份:");

  int m=input.nextInt();

  System.out.println("请输入日期:");

  int d=input.nextInt();

  int sum=0;

  for (int i = 1; i < m; i++) {

      switch (i){

          case 1:

          case 3:

          case 5:

          case 7:

          case 8:

          case 10:

          case 12:

              sum+=31;

              break;

          case 4:

          case 6:

          case 9:

          case 11:

              sum+=30;

              break;

          case 2:

              if(y%4==0&&y%100!=0||y%400==0){

                  sum+=29;

              }else{

                  sum+=28;

              }

              break;

      }

  }

  sum+=d;

  System.out.println(sum);

}

}

break 在switch代表结束switch 在循环中代表结束循环。

如果想让for中的switch中的break结束for的话,这时候,需要指定索引。

import java.util.Scanner;

public class Main22 {

public static void main(String[] args) {

  Scanner input = new Scanner(System.in);

  System.out.println("请输入年份:");

  int y=input.nextInt();

  System.out.println("请输入月份:");

  int m=input.nextInt();

  System.out.println("请输入日期:");

  int d=input.nextInt();

  int sum=0;

  a:for (int i = 1; i < m; i++) {  //a: 就是指定break要结束的索引

      switch (i){

          case 1:

          case 3:

          case 5:

          case 7:

          case 8:

          case 10:

          case 12:

              sum+=31;

              break a;  //在break的时候带上索引名就行了

          case 4:

          case 6:

          case 9:

          case 11:

              sum+=30;

              break;

          case 2:

              if(y%4==0&&y%100!=0||y%400==0){

                  sum+=29;

              }else{

                  sum+=28;

              }

              break;

      }

  }

  sum+=d;

  System.out.println(sum);

}

}

索引名: for () break 索引名;--》结束的是指定索引名称指引的那层循环

continue也是同样的道理。

public class Demo10 {

 public static void main(String[] args) {

     //索引名: for()

     abc:for (int i = 1; i <= 10 ; i++) {

         System.out.println();

         for (int j = 1; j <= 20; j++) {

             if(j==i){

                 continue abc; //提前结束外层for循环

             }

             System.out.print(j+"  ");

         }

     }

 }

}

4.4 多重循环

地球和太阳 地球有自转有公转,自转一圈一天,公转一圈一年

所以地球的公转和自转之间的关系你可以理解为二重循环,公转一圈,自转365圈。

while(条件){(表达式1;条件;表达式2){
}											}
public class Main23 {

    public static void main(String[] args) {

        for(int i=1;i<=5;i++) {

            for(int j=1;j<=5;j++) {

                System.out.print("*");

            }

            System.out.println();

        }

    }

}

外层循环执行一次,内层循环执行一整圈。星号的打印由内层控制,每执行一次打印一颗星,换行由外层循环进行控制,打印完成一行星后立即换行。内层循环控制列,外层循环控制行


程序结构(下)_Java基础_04

public class Main24 {

    public static void main(String[] args) {

        for (int i = 1; i <= 5; i++) {

            for (int j = 1; j <= i; j++) {

                System.out.print("*");

            }

            System.out.println();

        }

    }

}

打印99乘法表

public class Demo4 {

    public static void main(String[] args) {

        for (int i = 1; i <= 9; i++) {

            for (int j = 1; j <= i; j++) {

                //  \t 转义字符代表制表符  1-4个空格

                System.out.print(j+"*"+i+"="+(j*i)+"\t");

            }

            System.out.println();

        }

    }

}

程序结构(下)_i++_05


标签:case,int,sum,程序结构,System,循环,public
From: https://blog.51cto.com/u_16261728/7473314

相关文章

  • C++入门及简单程序结构题目
    C++入门及简单顺序结构题目1.交换值【题目描述】输入两个正整数a和b,试交换a、b的值(使a的值等于b,b的值等于a)。【输入】输入两个正整数a和b。【输出】输出a与b交换值后的结果。【输入样例】23【输出样例】32inta,b,c;cin>>a>>b;c=a;a=b;b=c;printf("%d%d",......
  • 1. C++入门及简单程序结构
    1.C++入门及简单程序结构一,编写一个简单的C++程序#include<iostream>usingnamespacestd;intmain(){ return0;}二,基础语法变量1.变量的概念变量本质上是一个装东西的盒子,并且只能存放一个值。2.变量的定义变量必须先定义,才可以使用。inta=5;3.变量......
  • C#程序结构
    1.C#命名空间a)类名是不能重名的。b)但类是面向对象语言的基本单位。数量会上万,为了像变量的作用域一样将类分隔开,需要使用命名空间。c)命名空间类似于文件夹,不同文件夹下的文件可以同名,同理不同命名空间下的类也可以同名。并且命名空间的作用域不像语句块,不会延申到子命......
  • B3_辅助设计系统- 程序结构
    言+C辅助设计系统是按一个综合平台开发的,程序的架构非常重要,经综合分析,程序的整体设计思路如下:1..NETFrameworkFramework的选择很多,但是由于CAD的控件不支持core,因此采用Framework4.8.1,经测试,CAD运行良好。2.程序结构采用MVVM模式有很多优点,View和ViewModel分别处......
  • 西门子1200码垛机程序和1200立体库码垛机带注释 ,程序结构清楚明了,注释齐全。
    西门子1200码垛机程序和1200立体库码垛机带注释,程序结构清楚明了,注释齐全。程序涉及到变频器,触摸屏,工业机器人,视觉相机的程序控制.modbustcp通讯,SCL编程,支持博图15.1及以上版本。ID:2415665188448115......
  • 三菱FX3GA+三菱GS触摸屏 PLC脉冲控制单个步进电机定位控制 点胶机项目 程序结构清晰
    三菱FX3GA+三菱GS触摸屏PLC脉冲控制单个步进电机定位控制点胶机项目程序结构清晰,分段操作,配方做在PLC内部,触摸屏显示完整,有中英文切换显示。实际项目,是你学习参考有很大的帮助。有电气图纸,PLC程序,触摸屏程序,工作流程,电气BOM。ID:1415665038385337......
  • 西门子S7-1200机器人码垛机程序和1200立体库及码垛机等三个程序案例,程序带注释 ,程序结
    西门子S7-1200机器人码垛机程序和1200立体库及码垛机等三个程序案例,程序带注释,程序结构清楚明了,注释齐全。涉及到变频器,触摸屏,工业机器人,视觉相机的程序控制.modbustcp通讯,SCL编程,支持博图15.1及以上版本。ID:128675184594253......
  • 烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC
    烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC程序,SMAT700IE触摸屏程序,电气图纸全套,电气BOM。实际项目应用的程序。注意是程序,不是设备元器件,西门子SMART200PLC。ID:5519657417647111......
  • 松下FP XH六轴标准程序,程序控制六个伺服,轴的点动控制,回零,相对定位,绝对定位,程序结构清
    松下FPXH六轴标准程序,程序控制六个伺服,轴的点动控制,回零,相对定位,绝对定位,程序结构清晰,分块编程通俗易懂,注释完整,程序是成熟的项目程序,多工位转盘循环控制,是转盘控制的经典作品ID:8119668632759622......
  • SIEMENS/西门子SMART200 PLC, 烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明
    SIEMENS/西门子SMART200PLC,烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC程序,SMAT700IE触摸屏程序,电气图纸全套,电气BOM。实际项目应用的程序。注意是程序,不是设备元器件。ID:3914667918281682......