当前位置: 首页 > news >正文

java(二):java的运算和流程控制

java中单引号和双引号区别和用法

区别1:java中的单引号表示字符,双引号表示字符串。

区别2:单引号引的数据一般是char类型的;双引号引的数据 是String类型的。

区别3:java中单引号里面只能放一个字母或数字或符号;java中的双引号里面是0到多个字符构成。所以字符可以直接转换成字符串。字符串需要使用charAt(n) 来获取第几个字符。

char定义时用单引号,只能有一个字母,数字。char c='c';而String用双引号,可以是一个,也可能是多个字母,汉字等。就是所谓的字符串。String s="adsaf";

char只是一个基本类型,而String 可以是一个类,可以直接引用。比如char c='c';不能直接对c调用方法。String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了。

一.java 基本语法--运算符

java中常用的算术运算符是:+加、-减、*乘、/除、%取模

其实%运算可以得到两个数的余数。

一.算术运算符:++自加、--自减。

这两个运算符比较特殊,请大家思考一下:

int a=90;

a++;          等同于(a=a+1)

这时a等于?91


int b=89;

b--;          等同于(b=b-1)

这时b等于?88


inta=56;

intb=a++; 

System.out.println(b);56

System.out.println(a);57

int b=++a;相当于a=a+1再将b=a;

 int b=a++;相当于b=a再将a=a+1。

算术运算符:+=左加.-=左减./=左除.%=左取模

请大家看看几个案例,就明白了:

inta=90;

a+=90;           (相当于a=a+90)

请问,a现在等于多少?180

float b=89.7f;

b+=a;            (相当于b=b+a)

请问,b现在等于多少?269.7

int a=56;int b=90;

a-=34;b%=a;       (相当于a=a-34,b=b%a)

System.out.println(b);2

System.out.println(a);22

运算符

二.关系运算符

1、==等于;2、>大于;3、<小于;4、>=大于等于;5、<=小于等于;6、!=不等于

案例:

/*请编写一个程序,该程序可以接收两个数

(可以是整数,也可是小数)并判断两个数是大于?小于?还是等于? */

package day2;

import java.io.*;

import java.io.InputStreamReader;

public class shuru {

    public static void main(String []args){

        try{

            //输入流从键盘接收数

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader br = new BufferedReader(isr);

            //给出提示

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

            //从控制台读取一行数据

            String a1 = br.readLine();

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

            String a2 = br.readLine();

            //把String转float

            float num1 = Float.parseFloat(a1);

            float num2 = Float.parseFloat(a2);

            if(num1>num2){System.out.println("第一个大");}

            if(num1==num2){System.out.println("相等");}

            if(num1<num2){System.out.println("第二个大");}

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

三.运算符--逻辑运算符

用于判断逻辑关系的运算符

1、&&与;  2、||或;  3、!非

&&与的运算关系,真真为真,其它都为假。

||或的运算关系,假假为假,其它都为真。

!非的运算关系,真取假,假取真

二.java基本语法----三大流程控制

1顺序控制

听其名而知其意,让程序可以顺序的执行。

请大家看个案例[demo11.java]:

int a=7;

System.out.println("a="+a);

System.out.println("hello!");

a++;

System.out.println("a="+a);

System.out.println("0(∩_∩)0");

a++;

System.out.println("a="+a);


2分支控制

让程序有选择的执行,分支控制有三种:

1、 单分支;2、双分支;3、多分支a

1、单分支语法:

    if(条件表达式){

        语句;

    }


2、双分支语法:

    if(条件表达式){

        语句;

    }else{

        语句;

    }


3.1、多分支语法:

    if(条件表达式){

        语句;

    }else if(条件表达式){

        语句;

    }else if(条件表达式){

        语句;

    }else{

        语句;

    }

3.2、多分支语法:

    switch(条件表达式){ //***条件表达式数据类型,就和case常量表达式一致,否则就会报错。

    case常量1:

        语句1;

                 //语句1至break中相当于{}可以加入相应程序代码

        break;  //break,表示跳出switch语句

    case常量2:

        语句1;

        break;

        ...

    case常量n:

        语句n;

        break;

    default:

        语句;

        break;

    }

*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等


eg:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

    public static void main(String[] args) {

        try{

        InputStreamReader isr =new InputStreamReader(System.in);

        BufferedReader br = new BufferedReader(isr);

        System.out.println("输入年龄");

        String a1 = br.readLine();

        float num1 = Float.parseFloat(a1);

        if(num1>18){

            System.out.println("你年龄大于18,要对自己的行业负责,送入监狱");

        }

        else if(num1>10 && num1<=18){

            System.out.println("你的年龄也不小了,把你送少管所");

        }else{

            System.out.println("小孩子,下次注意");

        }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}


对比switch与if语句在执行分支语句的区别。

***switch分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,enum等数据类型

练习:

1、双分支控制作业.

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”

package day3;

import java.io.*;

import java.io.BufferedReader;

public class demo01 {

    public static void main(String []args){

        try{

            //接收从键盘输入的数

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader br = new BufferedReader(isr);

            //提示

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

            //从控制台读取一行数据

            String a1 = br.readLine();

            //将string转float

            float num1 = Float.parseFloat(a1);

            if(num1<18){

                System.out.println("你的年龄是"+num1);

            }else{

                System.out.println("你年龄大于18,要为自己的行为负责!");

            }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

2.多分支控制:

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

    public static void main(String[] args) {

        try{

        InputStreamReader isr =new InputStreamReader(System.in);

        BufferedReader br = new BufferedReader(isr);

        System.out.println("输入年龄");

        String a1 = br.readLine();

        float num1 = Float.parseFloat(a1);

        if(num1>18){

            System.out.println("你年龄大于18,要对自己的行业负责,送入监狱");

        }

        else if(num1>10 && num1<=18){

            System.out.println("你的年龄也不小了,把你送少管所");

        }else{

            System.out.println("小孩子,下次注意");

        }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

3.多分支控制:

请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

a表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。

package day3;

import java.io.*;

import java.util.Scanner;

public class demo3 {

    public static void main(String[] args){

        try{

            //根据用户输入判断今天星期几

            //请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

            //a表示星期一,b表示星期二 …

            //根据用户的输入显示相应的信息.要求使用 switch 语句完成

        /*思路分析

            1. 接收一个字符 , 创建Scanner对象

            2. 使用switch 来完成匹配,并输出对应信息

        代码*/

            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;

                case 'd':

                    System.out.println("周四");

                    break;

                case 'e':

                    System.out.println("周五");

                    break;

                case 'f':

                    System.out.println("周六");

                    break;

                case 'g':

                    System.out.println("周日");

                    break;

                default:

                    System.out.println("请输入a-g");

            }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}


3循环控制

听其名而知其意,就是让你的代码可以循环的执行。

循环控制有三种

1、for循环语法:

    for(循环初值;循环条件;步长){

        语句; //循环体

    }

2、while循环语法:

    while(循环条件){

        语句; //循环体

    }

特别说明:while循环是先判断在执行语句。


3、do

while循环 语法:

    do{

        语句; //循环体

    }while(循环条件);

特别说明:do while循环是先执行,再判断。


eg:写一个三角形

package day3;

//请编写一个程序,可以接收一个整数,表示层数,打印出金字塔一半

public class demo4 {

    public static void main(String []args){

        int lay =4;

        //lay表示层数

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

            //print

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

                System.out.print("*");

            }

            System.out.println("\n");

        }

    }

}

注意System.out.print()和System.out.println()的区别


eg:金字塔

package day3;

public class demo5 {

    public static void main(String []args){

        int lay = 4;

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

            //规律  

            //1=>3 2=>2 3=>1 4=>0 空格的规律

            for(int k=1;k<=lay-i;k++){

                System.out.print(" ");

            }

            //print *

            //1=>1 2=>3 3=>5  4=>7*的规律

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

                System.out.print("*");

            }

            System.out.println();

        }

    }

}


eg:镂空金字塔

public class demo6{

    public static void main(String []args){

        int lay=10;//表示有多少层

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

            //找出规律

            //1->32->2 3->1 4->0找出空格

            for(int k=1;k<=lay-i;k++){

            System.out.print("");

            }

            //打印*

            //1->12->3 3->5 4->7找出星的规律

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

                //判断该层是否是顶层或者是底层

                if(i==1||i==lay){

                System.out.print("*");

                }else{

                    //如果是第一个*

                    if(j==1 || j==(i-1)*2+1){

                    System.out.print("*");

                    }else{

                        System.out.print("");

                    }

                }

            }

            System.out.println();//换行

        }

    }

}


eg:空心菱形

public class Demo7{

    public static void main(String []args){

        int lay=4;//菱形上半部行数

        for(int i=1;i<=lay-1;i++){//判断循环上半部分

            for(int k=1;k<=lay-i;k++){//找行内*号前输出空格

                System.out.print("");

            }

            for(int j=1;j<=(i-1)*2+1;j++){//找行内输出星的位置

                if(j==1||j==(i-1)*2+1){  //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。

                    System.out.print("*");

                }else{

                    System.out.print("");

                 }

            }

            System.out.println();//换行

        }

        for(int i=1;i<=lay;i++){ //判断循环菱形下半部分

            for(int k=1;k<=i-1;k++){//判断循环找*号前要输出空格处

                System.out.print(" ");

            }

            for(int j=1;j<=(lay-i)*2+1;j++){//判断循环行长度

                if(j==1||j==(lay-i)*2+1){//判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。

                    System.out.print("*");

                }else{

                    System.out.print("");

                 }

            }

            System.out.println();//输出换行

        }

    }

}


eg:实心菱形

public class Demo104{

    publicstatic void main(String []args){

        intlay=4;//菱形上半部行数

        for(inti=1;i<=lay-1;i++){ //判断循环上半部分

            for(intk=1;k<=lay-i;k++){//找行内*号前输出空格

                System.out.print("");

            }

            for(intj=1;j<=(i-1)*2+1;j++){//找行内输出星的位置

                System.out.print("*");

            }

            System.out.println();//换行

        }

        for(inti=1;i<=lay;i++){  //判断循环菱形下半部分

            for(intk=1;k<=i-1;k++){//判断循环找*号前要输出空格处

                System.out.print("");

            }

            for(intj=1;j<=(lay-i)*2+1;j++){//判断循环行长度

                System.out.print("*");

            }

            System.out.println();//输出换行

        }

    }

}




喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/a/129920.html

相关文章:

  • 在Ubuntu下交叉编译 Qt 应用程序(完整步骤)
  • 竞拍商城:电商创新的博弈场与未来趋势
  • 进程基本介绍
  • C++Primer对象移动
  • C语言十大经典数学应用
  • 每天五分钟深度学习:非线性激活函数的导数
  • 2025年,HarmonyOS认证学习及考试
  • Go:函数
  • 使用 lm-eval 评估模型时报错:TypeError: ‘NoneType’ object is not callable 的解决方案
  • StableDiffusion完美扩图
  • 【计算机网络实践】(十二)大学校园网综合项目设计
  • JUC.atomic原子操作类原理分析
  • 大模型可视化应用敏捷开发方案:Dify+Echarts
  • 【NLP】18. Encoder 和 Decoder
  • 吴恩达深度学习复盘(14)迁移学习|项目基本周期
  • MATLAB 中文注释乱码的问题
  • ubuntu离线安装docker
  • 第二十三:内存逃逸、互斥锁 Map 线程安全
  • Spring Boot 项目基于责任链模式实现复杂接口的解耦和动态编排!
  • Python生成器:解锁高效编程的新姿势
  • 搭建一个Spring Boot聚合项目
  • 苍穹外卖day03
  • Redis之缓存更新策略
  • 10-常见笔试题-mk
  • 破解 MCP 认证难题方法深入了解考试内容
  • [MySQL] 索引
  • 使用Apache POI实现Java操作Office文件:从Excel、Word到PPT模板写入
  • 码界奇缘 Java 觉醒 后记 第二十二章 Epsilon无为秘境 - 寂静之地的内存试炼
  • 25软考中级*高项网课+历年真题+笔记+电子书+刷题【计算机软考】
  • C++——继承、权限对继承的影响