热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java语言基础(2)

运算符和表达式赋值运算:使用“”进行赋值运算,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。使用扩展赋值表达式在

运算符和表达式

赋值运算

使用“=”进行赋值运算,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。

使用扩展赋值表达式

在赋值运算符"="前加上其他运算符,即为扩展赋值运算符。

如:x+=5  x-=5   x/=5   x%=5   x*=5

字符串连接运算

使用"+"进行字符串连接

"+"可以实现字符串的连接,也可以实现字符串与其它数据类型的“相连”

int a=100;
String msg="a="+a;
System.out.println(msg);//a=100

msg=""+100+200;
System.out.println(msg);//结果而100200

msg=100+200+"";
System.out.println(msg);//结果为:300

条件运算(三目运算)
使用条件(三目)运算符

条件运算符又称"三目"运算符,其结构为:boolean 表达式? 表达式1:表达会2

条件运算符的规则如下:

-----先计算boolean 的表达式;

-----如果boolean表达式的值为true,整个表达式的值为表达式1的值;

-----如果boolean表达式的值为false,整个表达式的值为表达式2的值;

int a=100,b=200;
int flag=a>b?1:1-;//flag的值为-1

 

条件(三目)运算符的嵌套

条件运算符可以嵌套使用,所谓嵌套使用指在条件表达式:boolean表达式?表达式1:表达式2 中的表达式1或表达式2也可以是三目表达式。

int a=-3;
String r
=a>0? "正数":(a==0?"0":"负数");
System.out.println(r);
//结果为负数

 

 

分支结构

任何复杂的程序逻辑都可以通过"顺序","分支"。"循环"三种基本的程序结构实现。

程序可以在运行过程中,根据不同的条件运行不同的语句

if语句的执行逻辑

语句0;

if(逻辑表达式){

   语句1;

           语句2;

}

语句3;

1.执行语句0;

2.判断逻辑表达式的值:

  若值为true,则执行if语句块中的语句;

若值为false,则不执行if语句块中的语句;

3.执行语句3.

 

if-else语句的执行逻辑

if(逻辑表达式){

   语句1;

}else{

           语句2;

}

语句3;

1.执行语句0;

2.判断逻辑表达式的值:

  若值为true,则执行if语句块中的语句1;

若值为false,则不执行if语句块中的语句2;

3.执行语句3.

 

switch case语句

switch-case语句执行逻辑

switch case语句是一种特殊的分支结构,可以根据一个整数表达式的不同取值,从不同的程序入口开始执行。

switch(整型表达式){

  case 整型常量值1:语句1;

       case 整型常量值2:语句2 ;

        ..............

        default:语句n;

}

switch-case和break联合使用

通常case1,case2,,,caseN对应完全不同的操作,可以和break语句配合使用,执行完全相应语句后即退出switch块,不继续执行下面的语句。

switch(整型表达式){

  case 整型常量值1:语句1;break;

       case 整型常量值2:语句2 ;break;

        ..............

        default:语句n;

}

注意:break语句的作用在于跳出switch结构

switch-case的优势

switch-case常常和break语句结合使用实现分支的功能。

switch-case在实现分支功能时和if-else的主要区别在于switch-case结构的效率更高,结构更清晰。

从JDK7.0开始,switch-case支持字符串表达式。

 

循环结构

循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复执行。

循环的要素:

---循环体(相同或相似的语句)

---循环条件(继续执行循环的条件,在某些情况下循环条件以循环次数的方式体现)

while语句

while语句的执行逻辑

1.计算boolean表达式的值

2.如果值为true则执行语句块;语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块;如此循环往复,知道boolean为false时退出while循环。

while(boolean表达式){  //boolean表达式结果为真时,执行语句块;否则退出

  语句块   //被重复执行的操作

}

注意:一般情况下,循环操作中会存在使得循环条件不满足的可能性,否则将成为"死循环"。

while语句用于处理循环逻辑

int age=1;
while(age<=100){
System.out.println(
"你好");
age
++;
}
System.out.println(
"over");

 

使用break语句跳出循环

break用在循环体中用于退出循环

int x=0;
while(x<10){
if(x==5){
break;
}
System.out.println(x);
x
++;
}
//输出结果为:0,1,2,3,4当x==5时,退出循环。

 

do-while语句

do-while语句的执行逻辑

1.先执行语句块

2.再计算boolean表达式,如果为true,再次执行语句块,如此循环往复,直到boolean表达式的值为false为止。

do{   //无论boolean表达式是否为true,都先执行一次语句块

  语句块;

}while(boolean表达式);

 

while和do-while语句的区别:

-----while循环先判断再执行;

-----do-while循环先执行一次,再判断;

当初始情况不满足循环条件时,while循环一次都不会执行;do-while循环不管任何情况都至少执行一次;

注意:

while和do-while语句的不同仅仅是体现在第一次就不满足条件的循环中;如果不是这样的情况,while和do-while可以互换。

 

for语句

for语句的执行逻辑

for(表达式1;表达式2;表达式3){

  语句块(循环体)

}

1.计算表达式 1的值;

2.计算表达式2(表达式2为逻辑表达式)的值,如果为true则执行循环体,否则退出循环;

3.执行循环体;

4.执行表达式3;

5.计算表达式2,如果为true则执行循环体,否则退出循环;

6.如此循环往复,直到表达式2的值为false.

int sum=0;
for(int i=0;i<=100;i++){
sum
+=i;
}
System.out.println(
"1到100的和为:"+sum);

 

for语句三个表达式特殊用法

1)表达式1位置内容为空时:

int sum=0;
int i=1;
for(;i<=10;i++){
sum
+=i;
}
Sysetem.ouot.println(
"1到10的和为"+sum);

 

2)表达式3位置内容为空时:

int sum=0;
for(int i=1;i<=10;){
sum
+=i;
i
++;
}
Sysetem.ouot.println(
"1到10的和为"+sum);

 

 3)表达式1,2,3位置内容均为空时:

for(; ; ){ //死循环
Sysetem.ouot.println(
"我要上班了.....");
}

 

4)表达式1和3位置内容的多样化

for(int i=1,j=6;i<=6;i+=2,j-=2){
System.out.println(
"i,j="+i+","+j);
}

 

循环中使用break语句

break用于循环语句或switch语句中;

break用于循环,可使程序终止循环而执行循环后面的语句,常常与条件语句一起使用。

 

int sum=0;
for(int i=1;i<=100;i++){
if(sum>=400){
break;
}
sum
+=i;

}

 

 循环中使用continue语句

continue只能用于循环中

其作用为跳出循环体中剩余语句而执行下一次循环

int sum=0;
for(int i=1;i<=100;i++){ //统计总会时,跳过所有个位为3的
if(i%10==3){
continue;
}
sum
+=i;
}

 

 

循环问题

需要多次重复执行一个或多个任务的问题考虑使用循环来解决;

一般情况下,for循环使用最多,对于for循环结构,一定要分析出需解决业务的3部分:

-----循环变量初始状态

-----循环条件

-----循环变量的改变

循环问题定义--------“当”循环

循环语句的选择

---如果业务可以转换为"当..."这样的语句时,优先选择while语句来实现

---如果业务可以转换为"直到..."这样的句式时,优先选择do-while语句来实现

---如果业务中可以获取到一个确切的循环次数考虑for循环

 


推荐阅读
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
min_xie_964
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有