JAVA学习笔记——第五章 控制结构

这篇具有很好参考价值的文章主要介绍了JAVA学习笔记——第五章 控制结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🔥博客主页: A_SHOWY
🎥系列专栏:力扣刷题总结录 数据结构  云计算  数字图像处理  力扣每日一题_ 

流程控制总体介绍:决定程序是如何执行的,主要包括顺序控制、分支控制和循环控制

顺序控制

顺序控制:程序从上到下逐行执行,没有任何判断跳转

一个变量必须要先定义再使用

分支控制if-else

1)单分支

例题:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class demo1 {
    public  static void main(String[] args){
        //1.接收输入的年龄,定义一个scanner对象
        //2.把年龄保存到int中
        //3.使用if判断,输出对应的信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的年龄");
        int age = scanner.nextInt();
        if(age > 18) {
            System.out.println("你已经达到了18岁,需要负责任");
        }
    }
}

流程图 

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

2)双分支

if  else

if(age > 18) {
            System.out.println("你已经达到了18岁,需要负责任");
        }
        else{
            System.out.println("你的年龄不大放过你");
        }

流程图

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

3)多分支

if  ,else if,...,else

流程图

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

嵌套分支

内层分支+外层分支,分支尽量不要超过3层 

例子2:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class demo2 {
    public static void main(String[] args) {
        Scanner myscanner = new Scanner(System.in);
        System.out.println("请输入歌手的成绩");
        double score = myscanner.nextDouble();
        if(score > 8.0){
            System.out.println("请输入您的性别");
            char gender = myscanner.next().charAt(0);//取字符串的第一个字符
            if(gender == '男'){
                System.out.println("进入男子组");
            }
            else if(gender == '女'){
                System.out.println("进入女子组");
            }
            else{
                System.out.println("输入错误");
            }
        }
        else{
            System.out.println("对不起您被淘汰了");
        }
    }
}

分支控制 switch

switch(表达式){

case 常量1://当

语句块1;

break;

。。。

}

switch语句解读:

  1. switch关键字,表示switch分支
  2. 表达式对应一个值,运行后肯定是一个值
  3. 当表达式的值等于常量1,就执行语句块1(不止一句有可能)
  4. break,表示退出switch
  5. 如果和常量1没有匹配就继续匹配case常量2
  6. 如果一个也没匹配,就default

流程图

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

例子:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言 

import java.util.Scanner;
public class demo3 {
    public static void main(String[] args){
        Scanner myscanner = new Scanner(System.in);
        System.out.println("请输入一个字符a-g");
        char c1 = myscanner.next().charAt(0);
        switch (c1){
            case 'a' :
                System.out.println("今天是星期一");
                break;
            case 'b' :
                System.out.println("今天是星期二");
                break;
            case 'c' :
                System.out.println("今天是星期三");
                break;
            default :
                System.out.println("你输入的字符不正确");
        }
           System.out.println("退出了switch继续执行");
    }
}
    

switch细节:

  1. 表达式的数据类型,应和case后的常量类型一致
  2. switch中表达式的返回值只能是byte,short,char,enum【枚举】,string
  3. case子句中的值必须是常量不能是变量
  4. 当没有case匹配时,默认执行default
  5. 如果没有break,程序会顺序执行到switch结尾,直到遇到break

练习:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言 

import java.util.Scanner;
public class demo4 {
    public static void main(String[] args){
        Scanner myscanner = new Scanner(System.in);
        System.out.println("请输入a-e");
        char c1 = myscanner.next().charAt(0);
        switch (c1){
            case  'a' :
                System.out.println("A");
                break;
            case  'b' :
                System.out.println("B");
                break;
            case  'c' :
                System.out.println("C");
                break;
            case  'd' :
                System.out.println("D");
                break;
            case  'e' :
                System.out.println("E");
                break;
            default:
                System.out.println("输入错误");
        }
    }
}

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

用到一个小算法,让分数除以60,case0的时候就是不及格,case1的时候就是及格

import java.util.Scanner;
public class demo5 {
    public static void main(String [] args){
    Scanner myscanner = new Scanner(System.in);
    System.out.println("请输入成绩");
    double score =  myscanner.nextDouble();
    if(score >= 60 && score <= 100){
        switch ((int)score/60){
            case 0 :
                System.out.println("不合格");
                break;
            case 1 :
                System.out.println("合格");
                break;
            default:
                System.out.println("输入的有错误");
        }
    }
    else {
        System.out.println("请输入0-100的分数");
    }
    }
}

 循环控制for

流程图(和c++没啥区别)

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

for循环注意事项和细节:

  1. 循环条件返回的是bool值的表达式
  2. for(;循环判断条件;)中的初始化和变量迭代可以写到其他地方,但是分号不能省
  3. for(;;)表示一个无限循环
  4. 循环初始值和变量迭代都可以有多条,中间用,隔开 

循环控制 while

while(循环条件){}

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

练习:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class demo6 {
    public static void main(String [] args) {
        int i = 1;
   while(i <= 100){
       if(i % 3 == 0){
       System.out.println(i);}
       i++;
   }
   int j = 40;
   while(j <= 100){
       if(j % 2 ==0){
           System.out.println(j);
           j +=2;
       }
   }
    }
}

循环控制do- while

do{

       循环体(语句);

       循环变量迭代;

}while(循环条件);

先执行再判断,所以至少执行一次。循环前先执行一次(还钱先揍一顿)

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class dowhile {
    public static void main(String[] args){
        int i = 1;
        int sum = 0;
        do{
           if(i % 5 == 0 && i % 3 != 0) {
               System.out.println(i);
               sum++;
           }
           i++;
        }while(i <= 200);
        System.out.println(sum);
    }
}

 多重循环控制(难点)

例题:

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

先打印一个 JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

public class demo8 {
    public static void main(String[] args){
        for(int i = 1; i <= 5; i++){//层数
            //输出前面的空格
            for(int j = 5 - i; j >= 1; j--){
                System.out.print(' ');
            }
            for(int j = 1; j <= 2 * i - 1;j++ ){

                System.out.print('*');
            }
            System.out.println(' ');
        }
    }
}

然后改进成JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class demo8 {
    public static void main(String[] args){
        for(int i = 1; i <= 5; i++){//层数
            //输出前面的空格
            for(int j = 5 - i; j >= 1; j--){
                System.out.print(' ');
            }
            for(int j = 1; j <= 2 * i - 1;j++ ){
                if(j == 1 || j == 2 * i -1 || i == 5){
                System.out.print('*');}
                else{
                    System.out.print(' ');
                }
            }
            System.out.println(' ');
        }
    }
}

 做活:

import java.util.Scanner;
public class demo8 {
    public static void main(String[] args){
        int totalLevel = 8;
        for(int i = 1; i <= totalLevel; i++){//层数
            //输出前面的空格
            for(int j = totalLevel - i; j >= 1; j--){
                System.out.print(' ');
            }
            for(int j = 1; j <= 2 * i - 1;j++ ){
                if(j == 1 || j == 2 * i -1 || i == totalLevel){
                System.out.print('*');}
                else{
                    System.out.print(' ');
                }
            }
            System.out.println(' ');
        }
    }
}

break

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

例: 

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import  java.util.Scanner;
public class demo10 {
    public static void main(String[] args){
        Scanner myscanner = new Scanner(System.in);
        int chance = 3;
        for(int i = chance; i >= 0; i--){
            System.out.println("请输入用户名和密码");
            String name  = myscanner.next();
            String password = myscanner.next();
            if("cpy".equals(name) && "666".equals(password)) {
                System.out.println("密码正确");
            }
            else{
                chance --;
                System.out.println("你还有" + chance + "次输入机会");
            }
        }
    }
}

 这里要注意字符串相等的判断要用equals方法

例2:JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言 

Math.random()//这个函数是生成【0,1)的小数
100 * Math.random()//【0,100)
int(100 * Math.random())//【0,99】
int(100 * Math.random()) + 1//【1,100】
public class demo11 {
    public static void main(String[] args){
        for(;;){
            int a = (int)(Math.random() * 100) + 1;
            System.out.println(a);
            if(a == 97) break;
        }
    }
}

continue

跳过这次循环,进入下一次循环的判断

return

跳出所在的方法,如果用在main,就是跳出整个程序。

总的练习:

例1:


public class lianxi1 {
public static void main(String[] args){
    double a = 100000;
    int cishu = 0;
    while(a > 1000){
        if(a > 50000) {
            a = a - a * 0.05;
            cishu ++;
        }
        else {
            a -= 1000;
            cishu ++;
        }
    }
    System.out.println(cishu);
    System.out.println(a);
}
}

 例2:

import java.util.Scanner;
public class lianxi2 {
    public static void main(String[] args){
     Scanner myscanner = new Scanner(System.in);
     double a = myscanner.nextDouble();
     double b = a / 100;//百位
     double c = a % 100 / 10;//十位
     double d = a % 10;//个位
        if(b * b * b + c * c * c + d * d *d == a){
            System.out.println("这个数是水仙花数");
        }
        else{
            System.out.println("这个数不是");
        }
    }
}

例3

import java.util.Scanner;
public class lianxi3 {
    public static void main(String[] args){
        int count = 0;
        for(int i = 0; i < 100; i++) {
            if (i % 5 != 0) {
                System.out.print(i);
                count++;
            }
            if(count == 5){
                System.out.println('\n');
                count = 0;
            }
        }
    }
}

 例4

JAVA学习笔记——第五章 控制结构,JAVA零基础开始,java,开发语言

import java.util.Scanner;
public class lianxi4 {
    public static void main(String[] args){
     for(char c1 = 'a'; c1 <= 'z';c1++){
         System.out.print(c1);
     }
     for(char c2 = 'Z';c2 >= 'A';c2--){
         System.out.print(c2);
     }
    }
}

 锻炼到的是字符可以当成一个整数使用

例5:

 要考虑到1 / i如果不改成1.0,最后结果总是1.0,考虑类型转换文章来源地址https://www.toymoban.com/news/detail-819031.html

import java.util.Scanner;
public class lianxi5 {
    public static void main(String[] args){
        double a= 0;
        for(int i = 1; i <= 100; i++){
            if(i % 2 != 0){
                a += 1.0 / i;
            }
            else {
                a -= 1.0 / i;
            }
        }
        System.out.println(a);
    }
}

到了这里,关于JAVA学习笔记——第五章 控制结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • java并发编程之美第五章读书笔记

    java并发编程之美第五章读书笔记

    CopyOnWriteArrayList 线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)进行的,也就是写时复制策略 类图 每一个对象里面有一个array数组进行存放具体的元素,ReentrantLock独占锁对象用来保证同时只有一个线程对array进行修改,这里只要记得ReentrantLock是独占锁

    2024年02月03日
    浏览(12)
  • 【Rust】Rust学习 第五章使用结构体组织相关联的数据

    【Rust】Rust学习 第五章使用结构体组织相关联的数据

    定义结构体,需要使用  struct  并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为  字段 ( field )。 实例化(不可变变量) 可变变量 字段初始化简写语法 通过已经存着的变

    2024年02月13日
    浏览(20)
  • (CDA数据分析师学习笔记)第五章多维数据透视分析一

    商业智能报表:BI报表。 ETL: 全称 Extract-Transform-Load ,即提取(extract)、转换(transform)、加载(load)。 E 是第一步对源数据进行抽取,源数据主要来源于业务系统、文件数据、第三方数据。T是第二步,对数据进行适当处理,目的是为了下一步的加载。主要是筛选(有价值

    2024年04月11日
    浏览(11)
  • 【UnityShader入门精要学习笔记】第五章(1)年轻人的第一个Shader

    【UnityShader入门精要学习笔记】第五章(1)年轻人的第一个Shader

    本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 + 个人批注 项目源码 一堆新手会犯的错误 潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 现在我们将学习如何编写一个 顶点/片元着色器 一个Unity Shader的

    2024年02月20日
    浏览(14)
  • 5.程序控制结构|Java学习笔记

    顺序控制 分支控制 循环控制 程序从上到下逐行地执行,中间没有任何判断和跳转。 单分支 if 双分支 if else 多分支 if-else if-…-else 表达式数据类型,应和 case 后的常量类型一致,或者是可以自动转成可以相互比较的类型。 swtich (表达式) 中表达式的返回值必须是: (byte, s

    2024年02月08日
    浏览(9)
  • 第五章 结构化设计

    第五章 结构化设计

    一种软件开发活动,定义实现需求规约所需的软件结构。 结构化设计分为: (1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。 (2)详细设计:详细描述模块。 体系结构设计(MSD) 接口设计 数据设计 实现软件设计的目标对结

    2024年02月08日
    浏览(18)
  • 使用MASA Stack+.Net 从零开始搭建IoT平台 第五章 使用时序库存储上行数据

    使用MASA Stack+.Net 从零开始搭建IoT平台 第五章 使用时序库存储上行数据

    @ 目录 前言 分析 实施步骤 时序库的安装 解决playload没有时间戳问题 代码编写 测试 总结 我们可以将设备上行数据存储到关系型数据库中,我们需要两张带有时间戳的表( 最新数据表 和 历史数据表 ), 历史数据表 存储所有设备上报的数据, 最新数据表 需要存储设备最新

    2024年02月11日
    浏览(10)
  • 第五章 数据结构与算法——八大排序

    第五章 数据结构与算法——八大排序

    目录 一、排序的概念及其运用 二、八大排序的原理及其实现(升序为例) (一)、直接插入排序 (二)、希尔排序(也叫缩小增量排序)(重要) 1.原理: 2.该排序一般分为两个步骤: 3.预排序过程: 4.预排序的意义(升序为例): 5.希尔排序的特点: 6.希尔排序代码实现

    2024年02月19日
    浏览(15)
  • 《计算机网络:自顶向下方法》第五章--网络层:控制平面

    《计算机网络:自顶向下方法》第五章--网络层:控制平面

    控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理 传统上,控制平面功能与数据平面的转发功能在一起实现,在路由器中作为统一的整体 在网络层:数据平面中有转发

    2024年02月12日
    浏览(12)
  • 王道考研数据结构第五章知识点

    王道考研数据结构第五章知识点

    5.1.1 树的定义和基本术语   祖先节点:(对于你来说),父亲和爷爷都是祖先节点 子孙节点:对于父亲来说,父亲下面所有的节点都叫子孙节点 双亲节点(父节点):一个节点的直接前驱就是它的父节点  兄弟节点:例如二叔,三叔都是父亲的兄弟节点 堂兄弟节点:对于你来说,

    2024年02月15日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包