当前位置: 代码迷 >> 综合 >> Java第三天-程序结构
  详细解决方案

Java第三天-程序结构

热度:35   发布时间:2024-02-23 11:22:09.0

Java第三天-程序结构

  • Java的三种程序结构
  • 顺序结构
  • 条件结构
    • if
    • if……else
    • if……else if……else
    • switch
  • 循环结构
    • while
    • do……while
    • for
    • foreach
  • break和continue的使用

学计算机的就是牛,一般人十个手指只能算10个数,学计算机的能算1024个数,因为我们用二进制——蓝桥

Java的三种程序结构

程序结构也叫流程控制:
程序在执行过程中,各条件语句的执行的顺序是有直接的影响的。
在程序中 ,可能出现不同的执行顺序,必须 自上而下顺序执行,或者 条件判断的顺序或者循环执行的顺序。

顺序结构

从头到尾,从上到下的依次执行的程序的代码。

条件结构

条件语句会根据不同的判断条件执行不同的代码

if

if条件语句主要用于告知程序到某一个条件成立时,必须执行满足该条件的相关语句
语法:

if (布尔值) {
    语句块;
}
  • 布尔值,必要的参数,单纯的布尔变量或者,关系表达式都可以,只要是能表达布尔值的都以用作条件判断。
  • 语句块,可以是一条或多条的语句在一个区域之间的语句。
    :当if后面只有一句语句时是可以忽略大括号的(新手不建议这样)。

if……else

if……else语句时条件语句中最常用的一种形式,他会针对某中条件有选择地做出处理,通常表现为"如果满足某种条件,就执行某种处理,否则执行另一种处理"。

if (布尔值) {
    满足条件语句块;
}else{
    			//否则另一种条件语句块;
}

就好比我去买水,如果我有5块钱我就可以买快乐水,否则只能买矿泉水。
这里就是5 > 3可以买快乐水,小于3块钱就只能喝矿泉水了。

if……else if……else

if……else if……else相当于是多条件判断了,不再像if……elsen那样只有有两个分支,而是多分支条件判断,可以判断多种条件的。

if (布尔表达式1) {
    		//如果满足此条件执行语句块1语句块1;
}else if (布尔表达式2) {
    		//不满足条件1满足条件2执行语句块2语句块2;
}else if (布尔表达式3) {
    		//不满足条件1且不满足条件2,但满足条件3执行语句块3语句块3;
}else{
    							//以上条件都不满足时执行else里面的语句块4语句块4;
}

else表示否则的意思,意思是所有条件都不满足时则执行else里的语句块。

		int n = (int)(Math.random()*90);		//生成随机数if(n < 18){
    System.out.println("你未成年哦!");}else if(n >= 18 && n < 30){
    System.out.println("青少年,你好!");}else if(n >= 30 && n < 50){
    System.out.println("中年人!");}else if(n >= 50 && n < 70){
    System.out.println("老年人!");}else{
    System.out.println("晚年生活!!!");}System.out.println("n = " + n);

switch

switch也是条件分支,但是他是固定的值,例如:成绩判断如果你得到了A输出优秀,得到B输出成绩为良好,得到C输出及格,得到D输出不及格。

switch (用于判断的参数) {
    case 常量表达式1 : 语句1;break;case 常量表达式2 : 语句2;break;case 常量表达式3 : 语句3;break;......default :语句4;break;
}
  • 用于判断的参数:此时就不是表达式了,而是值,此处的值和下面的常量表达式进行等值判断,如果参数为A,case后面也是A的话就执行语句1,其他则不执行。
  • case:的后面只能是常量或常量表达式
  • default:表示以上的条件都不匹配时则执行default里的语句4,default是可有可无的,如果不写的话条件都不成立时则不执行switch里的任何代码。
  • 如果不加break语句时,他会出现参透效果,也就是从条件达成的那一个case开始一直执行到有break语句时跳出,或者执行到default语句停止。(break的功能后面详细介绍)
		int n = (int) (Math.random()*7+1);			//生成随机数1~7的随机数switch (n){
    case 1:System.out.println("这里是:" + n);break;case 2:System.out.println("这里是:" + n);break;case 3:System.out.println("这里是:" + n);break;case 4:System.out.println("这里是:" + n);break;case 5:System.out.println("这里是:" + n);break;case 6:System.out.println("这里是:" + n);break;case 7:System.out.println("这里是:" + n);break;//此处就并没有给default}
/* 模拟计算器的基本功能 */Scanner sc = new Scanner(System.in);System.out.println("输入第一个数:");int a = sc.nextInt();System.out.println("输入运算符:");char x = sc.next().charAt(0);System.out.println("输入第二个数:");int b = sc.nextInt();System.out.print("结果:");switch (x){
    case '+':System.out.println(a+b);break;case '-':System.out.println(a-b);break;case '*':System.out.println(a*b);break;case '/':System.out.println(a/b);break;default:System.out.println("输入错误");}

: switch 的表达式判断 只能等值比较 ,其中case的常量值 类型位: 整数型(byte short int long ),字符型,字符串型,枚举型。

循环结构

在我们程序中有些代码或条件往往是需要重复运行,此时为了代码的不必要的重复,程序就有了循环的结构,循环的去做重复的事情。在Java中有三大种类的循环结构(还有一种是for的变异种foreach)。
在Java程序中,重复的执行某一段代码 这个过程称之为循环, 为了避免出现死循环,循环分为四部分

? 1、初始条件

? 2、循环的判断条件 ,条件为true ,则进入循环体

? 3、循环体

? 4、迭代变量

while

while (条件表达式) {
    语句块;
}

条件表达式:条件表达式返回的必须是布尔类型的值,如果条件成立就会执行while里的语句块,而且重复判断这个条件表达式是否成立,直到表达式为false时跳出循环,不再执行while里的语句块。

 //计算 1到100的累加之和int sum=0;int  n=1;while(n<=100){
    sum+=n;n++;			//迭代变量-控制循环次数}System.out.println("n:"+n);System.out.println("sum:"+sum);

do……while

在有些时候写循环时,我们需要先执行一边循环里面的语句再进行判断的时候,例如我们在登录的账号时,输入账号密码时我们都需要判断它的正确性,如果不正确我们就需要循环输入账号密码的语句再次进行判断,如果账号密码输入正确,就跳出循环。

do {
    语句块;
}while (条件表达式);

先会执行语句块,然后再进行条件表达式的判断,如果成立他会再次执行语句块,知道条件不成立才会跳出循环。

		int x = 0;      //账号int y = 0;      //密码do {
    System.out.println("输入");Scanner sc = new Scanner(System.in);x = sc.nextInt();y = sc.nextInt();}while (!(x == 2 && y == 3));System.out.println("成功");

程序执行,会先让你输入账号密码,然后进行判断如果条件为true时就结束循环,否则重新输入账号密码。

for

for循环的升级版就是 foreach循环
for循环通常在明确循环次数的情况下使用, 它也分为四部分
语法:

 for(初始值1 ; 循环判断条件2 ; 迭代部分3 ){
    循环体4}或者初始值for( ; 循环判断条件 ; ){
    循环体迭代部分}// 他们的区别是 初始值定义在for的外边,就可以在循环外边使用

循环执行流程:

?1243->243->243->243->。。。>2 为false 循环退出
例如 :循环输出5遍hello world

  // i 表示计数器,从1开始 到5结束for(int i=1 ;i<=5 ; i++){
    System.out.println("hello world");}

循环的执行顺序:
第一遍: i=1 1<5 成立 输出“hello world ” i++ i=2
第二遍 :2<=5 成立 输出“hello world” i=3
第三遍 : 3<=5 成立 输出”hello world“ i=4
第四遍: 4<=5成立 输出”hello world“ i=5
第五遍: 5<=5 成立 输出”hello world“ i=6
第六遍: 6<=5 不成立,退出
i=6

使用for循环计算1-的阶乘

 // 使用for循环 计算 10的阶乘for(int i=1;i<=10;i++){sum*=i;}

for循环部分可以省略

        // 死循环for(;;){System.out.println("hello");}
        for(;true;){System.out.println("hello world");}
  // 迭代部分的代码 可以 放入循环体中int i=0;for( ; i<10; ){
    System.out.println("第"+i+"次输出");i++;}

foreach

foreach 是for的一变异体系,它的语法为:

for (int x : 数组) {
    语句块;
}

在这里了解下有这个东西就好,一般遍历数组经常用到。

		int[] a = {
    2,3,4,5};       //定义数组for (int x : a)             //foreach循环遍历这个数组System.out.println(x);

break和continue的使用

break:跳出整个循环不管循环条件是否成立,只要在循环里运行到了break时,它就会跳出这个循环。往往在循环一些不知道循环次数或者循环表达式时将表达式改为true作为一个死循环,然后使用break跳出这个循环。

for (int i = 0; i < 100; i++) {
    if (i == 3)break;System.out.println(i);}//此时的循环只会循环三遍:0、1、2,因为当i等于3时它会执行break,跳出这个循环。

continue:跳出循环一次,假如我们要输出20以内的奇数,我们就不能使用break跳出整个循环,我们需要跳出一次的效果。

for (int i = 0; i < 20; i++) {
    if (i % 2 == 0)continue;System.out.println(i);}//将i和2求余如果等于0就跳出一次不执行后面的输出的语句,不等于时输出这个i就是奇数
  相关解决方案