百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

学员笔记连载,第3天,流程控制语句

toyiye 2024-09-12 21:00 6 浏览 0 评论

引用类型的使用

java提供的类的使用

  • 导包,import 包名.类名;
  • 创建对象,也是定义变量并赋值
      • 数据类型 变量名 = new 数据类型();或者
        • 数据类型 变量名;
        • 变量名 = new 数据类型();
  • 调用方法,变量名.方法名();

随机调取数:Random

double nextDouble() 生成一个随机小数 【0,1)

int nextInt(int max ) 生成一个随机整数 【0,max)

int nextInt (int max ) +1 生成一个随机整数 【1,max)

Random r = new Random();

double d = r.nextDouble();  // 生成【0,1)的随机小数
int i1 = r.nextInt(200);  // 生成0——199的随机整数
int i2 = r.nextInt(200)+1;  // 生成 1——200 的随机整数
int i3 = r.nextInt(900)+100;// 生成100-999的整数

System.out.println(d);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);

结果:
0.4156196015182372
71
134
845

键盘录入:Scanner

  1. 导包,位于 java.util 包下 (格式 import 包名.类名)这行语句要写在定义类的语句之上
  2. 创建一个Scanner的对象【Scanner 变量名 = Scanner(System.in)
  3. 使用Scanner对象获取键盘录入的信息

获取int值: 对象名.nextInt();

获取小数值: 对象名.nextDouble();

获取布尔值: 对象名.next.Boolean();

获取字符串: 对象名.next.Line(); next( );

没有nextChar这个方法

4.注意事项

如果程序中除了使用nextLine以外,还使用了其他的nextInt...方法

如果nextLine方法在最后录入,就会导致该字段无法录入进去。

解决方法

① 把nextLine 放到 最上面(nextXXX 方法之上)

② 使用next

/**
    阻塞式方法,nextLine的例子
*/
import java.util.Scanner;//导包
public class Demo01_Scanner{
    public static void main(String [] args){
        Scanner sc = new Scanner (System.in);//定义变量并赋值
                        
        System.out.println("请输入您的年龄");
        int age = sc.nextInt();
        
        System.out.println("请输入您的身高");
        double height = sc.nextDouble ();
        
        System.out.println("请输入您的名字");
        String name = sc.next();//原来是String name = sc.nextLine,就会导致名字还没有输入就出了结果
        
        System.out.println("你好,"+name+",原来你已经"+age+",身高"+height);
        
    }
}
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入您想创建的名称");
        String name = sc.next();

        System.out.println("请输入您的年龄");
        double age = sc.nextDouble();  // 这里可以输入整数,会自动类型提升

        System.out.println("请输入您的账号");
        int i = sc.nextInt();

        System.out.println("恭喜"+name+"您的账号已创建成功,"+"年龄是"+age+"身高"+i+","+"欢迎来到这个世界莉莉");

    }
结果:
请输入您想创建的名称
莉莉
请输入您的年龄
18
请输入您的账号
123
恭喜莉莉您的账号已创建成功,年龄是18.0身高123,欢迎来到这个世界

java只识别语法

java只识别语法格式是否错误,不识别变量的值

                // java识别常量的true
            int a;
        if(true){
            a = 10;
        }
        System.out.println(a);  // a=10,true是常量
        
        // java 识别不了变量的值
        int a;
        boolean b = true;
        if(b){
            a = 10;
        }
        System.out.println(a);  // 会报错,可能尚未初始化a;

流程语句

概述

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

顺序结构

public static void main(String[] args){
    //顺序执行,根据编写的顺序,从上到下运行
    System.out.println(1);
    System.out.println(2);
    System.out.println(3);
}

判断语句

if语句

概述:if的条件是一个范围或者具体的,条件输出的结果之鞥你是布尔的结果




类型

格式

含义

注意事项

单条件判断

if (条件){语句}

如果满足条件则执行语句,如果不满足则不执行

1.需要注意变量的作用域范围2.if 语句可以省略大括号

互斥条件判断

if(关系表达式) { 语句体1;}else { 语句体2;}

如果满足表达式则执行语句1,否则执行语句2


多条件判断

if (判断条件1) { 执行语句1;} else if (判断条件2) { 执行语句2;}...}else if (判断条件n) { 执行语句n;} else { 执行else语句;}

满足哪个条件就执行对应的语句,如果都不满足就执行else语句(各条件也是互斥的)


/**
    if语句
*/
public class Demo_If {
    public static void main (String [] args){
        int age = 18;//单条件判断
        if (age>=18)
            System.out.println("你已经成年了");//执行语句只有一句话时,大括号可以省略

        char sex = '人';//互斥条件判断
        if (sex == '男')
            System.out.println("你是男人");
        else
            System.out.println("不确定");
        
        double score = 98.9;//多条件判断
        if (score >= 90 && score <= 100)
            System.out.println("成绩优秀");
        else if (score >=70 && score <90)
            System.out.println("成绩良好");
        else if (score >= 60 && score < 70)
            System.out.println("成绩及格");
        else
            System.out.println("不及格");
                        
    }
}

Switch语句

Switch 选择结构,主要运用于几个值中选择一个

Switch 格式 Switch (变量){

case 值1;//有可能的情况是

语句1;

break;//中断的意思

case 值1;

语句1;

break;

。。。。。

default;//默认值的意思

默认语句;

break;

}

import java.util.Scanner;
public class test_switch_01 {
    public static void main (String [] args)
    {
        Scanner sc = new Scanner (System.in);

        System.out.println("请输入数字(1 7):");
        int num =  sc.nextInt();

        switch (num)
        {
            case 1 ;
                System.out.println("星期一");
                break;
            case 2 ;
                System.out.println("星期二");
                break;
            case 3 ;
                System.out.println("星期三");
                break;
            case 4 ;
                System.out.println("星期四");
                break;
            case 5 ;
                System.out.println("星期五");
                break;
            case 6 ;
                System.out.println("星期六");
                break;2
            case 7 ;
                System.out.println("星期七");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

注意事项:

  1. switch 小括号中的数据 的数据类型,只能是byte short int char JDK1.5之后可以使用枚举,JDK1.7之后可以使用String
  2. case 只在第一次判断时生效,之后就相当于没有case了,如果不写break ,代码会自动向下执行,不再判断case,直到运行遇到break 或者大括号结束,这种情况称之为case穿透

循环语句

For 循环

  1. 循环:就是一段代码反复执行
  2. 循环的四个要素
      • 初始化表达式:定义一个变量 用来记录初始的次数
      • 布尔表达式:循环的出口 循环的判断条件
      • 步进表达式:循环的变量 每次都与偶啊进行变化
      • 循环体:在循环中要执行的内容
  1. for循环格式

for (初始化表达式1;布尔表达式2;步进表达式3){循环体4}

就是以124 324 324........一直到2不满足条件才结束循环

public class Demo_For{
    public static void main (String [] args)
    {
        for (int = 1;i <= 10;i += 1){
            System.out.println("hello world"+i);
        }
    }
}
  1. for循环注意事项,1234均可以为空
    • 当1为空时,并不是真的没有初始化表达式,而是初始化表达式可以定义在循环外边,需要注意变量的作用域范围
    • 当2为空时,是一个布尔结果相当于true的死循环,会一直循环下去。
    • 当3为空时,第一种就是没有步进表达式,且是一个死循环;第二种将步进表达式定义在循环体中
    • 当4为空时,循环体为空,没有任何意义
        for (int i = 0; i < 5; i++) {
            System.out.println("你好 java"+i);
        }
        System.out.println("-------------------");

        // 练习1:打印1-100之间的所有偶数,余数为0
        for (int i = 1; i <= 100; i++) {
            if(i % 2 == 0)
                System.out.println(i);
        }
        System.out.println("-----------------");

        // 练习2:求1-100所有数的和
        int sum = 0;
        for (int i = 0; i <= 100; i++) {
            sum+=i;
        }
        System.out.println(sum); // 5050
        System.out.println("-----------------------");

        // 练习3:求100-999的所有奇数的和
        int sum1 = 0;
        for (int j = 100; j < 1000; j++) {
            if(j % 2 == 1)
                sum1 += j;
        }
        System.out.println(sum1);  // 247500

While 循环

  1. while循环格式

初始化表达式1;

while (布尔表达式2){

循环体4;

步进表达式3

}

PS:就是以1 243 243 243.。。。。一直到2不满足条件才结束循环

  1. 不明确循环几次一般使用while循环
public class DemoWhile{
    public static void main (String [] args){
    //打印100内的整数
        int i = 1;
        while (i <= 100){
            System.out.println(i);
            i++;
        }
    }
}
//随机数,直到50跳出循环
import java.util.Random;
public class DemoWhile{
    public static void main (String [] args){
        Random r = new Random();
        
        int num = 0;
        while ((num = r.nextInt(100)) = 50){
            System.out.println (num);
        }
       
    }
}
  1. 注意事项:

注意初始化表达式的作用域范围

布尔表达式为true,就是一个死循环

Do While 循环

  1. 格式

初始化表达式1;

do{

循环体2;

步进表达式3;

}while(布尔表达式4);

1 234 234 234.。。。。。 一直到4不满足为止

do while 循环,无论是否满足条件 都必须先执行一次

//打印10次hello world
public class DemoDowhile{
    public static void main(String [] args){
    int i = 1;
    do {
        System.out.println("hello world" + i);
        i++;
    }while (i <=10);
    }
}
//一般也不用dowhile 得知道

break和continue

关键字-break:只能在循环或者是switch 语句中使用,表示的是完全中断不再运行

不能跨级跳出

关键字-continue:只能在循环内部使用,不完全中断,结束当前循环,继续下一次循环

// break 完全中断
for (int i = 0; i < 5; i++) {
    if(i==2)
        break;
    System.out.println(i); // 0,1;到2就跳出循环了
}
// continue 不完全中断
for (int j = 0; j < 5; j++) {
    if(j==2)
        continue;
    System.out.println(j);  // 只有2不打印,打印0,1,3,4
}

标记语句跳出

import java.util.Scanner;
public class test_switch_01 {
    public static void main (String [] args)
    {
        Scanner sc = new Scanner (System.in);

        System.out.println("请输入数字(1 7):");
        int num =  sc.nextInt();

        abc://意思就是把switch标记为abc
        switch (num)
        {
            case 1 ;
                System.out.println("星期一");
                break;
            case 2 ;
                System.out.println("星期二");
                break abc;意思就是从这里跳出去到abc
            case 3 ;
                System.out.println("星期三");
                break;
            case 4 ;
                System.out.println("星期四");
                break;
            case 5 ;
                System.out.println("星期五");
                break;
            case 6 ;
                System.out.println("星期六");
                break;2
            case 7 ;
                System.out.println("星期七");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

练习-Scanner+if

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入1-7任意一个整数");
        int num = sc.nextInt();

        if(num == 1)
            System.out.println("星期一(");
        else if(num == 2)
            System.out.println("星期二");
        else if(num == 3)
            System.out.println("星期三");
        else if(num == 4)
            System.out.println("星期四");
        else if(num == 5)
            System.out.println("星期五");
        else if(num == 6)
            System.out.println("星期六");
        else if(num == 7)
            System.out.println("星期日");
        else
            System.out.println("输入的数字不再范围内");
    }

练习-Scanner-switch

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份(1-12)");
        int num = sc.nextInt();

        switch (num){
            case 1:
            case 2:
            case 12:
                System.out.println("是冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("是春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("是夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("是秋季");
                break;
            default:
                System.out.println("你输入的数字不在范围内,请重新输入");
                break;
        }

练习-循环嵌套-九九乘法表

外循环控制行数,内循环控制列数

// 1.打印一个三行三列的矩形
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print("*"); // 注意这里不能换行
            }
            System.out.println();
        }
        System.out.println("-----------------");
        // 2.打印一个四行的直角三角形
        for (int a = 0; a < 4; a++) {
            for (int b = 0; b <= a; b++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("---------");
// 3.打印九九乘法表,打印的时候,先打印内循环的,再外循环的
        for (int c = 1; c <= 9; c++) {
            for (int d = 1; d <= c; d++) {
                System.out.print(d+"*"+c+"="+d*c+"\t");
            }
            System.out.println();
        }

练习-综合练习

只有五次猜题的机会

public class Test2 {
    public static void main(String[] args) {
        Random r = new Random();
        int gussNum = r.nextInt(100)+1;

        Scanner sc = new Scanner(System.in);

        for (int i = 4; i >= 0; i--) {

            System.out.println("请输入一个1-100的任意整数,注意您只有5次猜对的机会");
            int putNum = sc.nextInt();

            if(putNum>gussNum)
                System.out.println("sorry,您猜大了");
            else if(putNum<gussNum)
                System.out.println("sorry,您猜小了");
            else
                System.out.println("恭喜您,答对了");
            System.out.println("请注意您剩余的机会还有:"+i+"很遗憾");
            
        }
    }
}

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码