1.位运算符

1.1位运算符:

 针对多个数据进行操作(使用"补码"计算结果)计算出来的结果是具体的数据值;     1)基本的位运算符:位与&: 有0,则0位或|: 有1,则1位异或^:相同则为0,不同则为1; 一个重要的特点: 一个数据被另一个数位^两次,其值是这个数据本身.可用来解决面试题:  a = a^b;  // 把a^b赋值给ab = a^b;  // b = (a^b)^b = a; 成功将a赋值给了ba = a^b;  // a = (a^b)^(a) = b; 成功将b赋值给了a反码~: 按位取反,全部都0变1,1变0 ; 得到新的补码,再根据补码--->反码--->原码2)扩展的位运算符:左移>> : 将这个数据(补码)向右移动指定的位数;如果最高符号位为0,左边补0;如果最高符号位为1,左边补1;将右边的多余的数据丢弃掉;即: 将>>符号左边的数据除以2的移动次幂右移<< : 将这个数据(补码)左移动,右边不够的补0,将左边多余的移动位数丢弃掉!即: 将<<符号左边数据乘以2的移动次幂无符号右移>>> : 无论最高符号位是1还是0,始终左边补0;(使用补码无符号右移)所以最终的得到的是一个很大的正数.

2. 三目运算符

2.1 三元运算符的格式:

(表达式)?执行语句1(具体的结果):执行语句2(具体的结果);

2.2 执行的流程:

     1)先判断表达式的结果是否成立,如果结果为true,就执行成立的语句1;2)否则不成立,则执行不成立的语句2;可用来解决: 求两/三个书中的最大值; 判断两个数是否相等.

2.2 三目运算符和if的区别

 if是一个流程控制语句,不仅能够表示具体的结果,而且还可以一个输出语句体现;但是三元运算符,一般情况:就是最终是具体的结果体现!if范围大于三元;能够使用三元运算符实现的一定能够使用if格式2;反之,不一定!

3. 键盘录入数据

3.1 目的

不把变量写死,提高程序的灵活性.

3.2 步骤

 1)导包 (因为没有在lang包下,所以需要导包)固定写法(在class的上面):import java.util.Scanner; //用谁导谁2)固定格式:创建文本扫描器对象Scanner 对象名 = new Scanner(System.in) ; //对象名:自己起名字3)提示并录入数据 (默认录入int类型)System.out.println("请您输入数据:") ;int 变量名= 对象名.nextInt() ; //录入一个int类型的数据也可以录入string类型的数据:string 变量名= 对象名.nextLine() ;4)完成自己的业务操作:使用这个变量名(求两个数据是否相等/比较数据最大值等等...)

3.3 示例

import java.util.Scanner ;class ScannerDemo{public static void main(String[] args){//创建键盘录入对象(固定格式)Scanner sc = new Scanner(System.in) ; //提示并录入数据System.out.println("请您输入第一个数据:") ;int a = sc.nextInt() ; System.out.println("请您输入第二个数据:") ;int b = sc.nextInt() ; //String num = sc.nextLine() ;//录入字符串类型int max = (a>b)?a:b;//输出System.out.println("最大值是:"+max) ;

4. 流程控制语句

4.1分类

 1)顺序结构语句2)选择结构语句3)循环结构语句

4.2 顺序结构语句

 当进入到类中之后,jvm调用main方法,代码由上而下依次加载除非一种特例:当jvm退出了就不会进行执行了!System.exit(0) ;(可用来终止程序)

4.3选择结构语句

4.3.1 if语句
if语句格式1(针对一种情况判断):   注意事项:  {}和 ; 不能并存if(表达式){   // 第一步判断表达式是否成立,成立,则执行该语句语句;        //  不成立,不会进入if里面;}
If语句格式2(针对两种情况进行判断):if(表达式){     //1)先判断表达式是否成立,如果成立,执行执行语句1;语句1;}else{          // 2)如果不成立,则执行语句2;语句2;}
if语句格式3(针对多种情况进行判断):if(表达式1){            // 1)首先判断表达式1是否成立,如果成立,则执行语句1;语句1 ;}else if(表达式2){      // 2)如果上面表达式1不成立,继续判断表达式2是否成立,如果成立,执行语句2语句2;}else if(表达式3){     // 3)如果表达式2也不成立,继续判断表达式3是否成立,如果成立,执行语句3语句3;...              //..........}else{语句n+1;           // 4)如果上面的条件表达式都不成立,则执行最终语句n+1 ;}

4.3.2 switch语句

1) 格式
 switch(表达式){            // 1)switch中的表达式的结果值和case语句匹配,值1和结果匹配,case 值1:              就执行语句1,遇见break,switch结束;语句1;break ;case 值2:         // 2)值1和switch表达式结果不匹配,继续判断值2是否匹配,如果匹配,就语句2;                执行语句2,switch语句结束break ;.........default:            // 3)如果case语句后面值都不匹配,这个执行default语句,执行语句n+1,程序语句n+1 ;              执行到末尾结束...break ;}
2) 注意事项
switch   跟的表达式可以是什么数据类型? 基本类型:int,byte,short,charJDK5以后,可以 跟枚举: enum : 枚举类(引用类型,里面的都常量!)                                 JDK7以后:可以跟String类型
break   一种跳转控制语句,只能在Switch和循环语句中使用,不能单独使用;如果没有break,就会造成语句穿透.(有时候可以利用穿透特性写程序)
default 可以放在任何位置,不会影响语句的执行流程.若放在末尾可以省略break;case    后面只能跟常量
switch  结束条件a)遇见break结束b)程序默认执行到末尾

5. 循环语句

5.1 For循环语句

5.1.1 for循环语句的格式

for(初始化语句; 条件表达式; 步长语句/控制体语句){循环体语句;}

5.1.2 执行流程:

1)初始化语句对变量进行赋值
2)判断条件表达式是否成立;如果是成立,执行循环体语句;
3)继续执行控制体语句
4)继续回到2)里面判断如果是成立,执行循环体语句;
继续回到3)
...
...
...
一直执行到条件不成立结束;

5.1.3 求和思想

例: 求1-10以内数字的和class NumberSum{public static void main(String[] args){int sum = 0;for(int a = 1;a <= 10;a++){sum += a;}System.out.println("1-10之间数字的和是:"+sum);}}
扩展: 求偶数和/奇数和class NumberSum1{public static void main(String[] args){int sum1 = 0;for(int b = 0;b <= 10;b += 2){     // 奇数: (int b = 1; b <= 10;    b += 2)sum1 += b;                       // 也可以用条件 b % 2 = 0; 来判断偶数}System.out.println("1-10之间数字的偶数和是:"+sum1);}}

5.1.4 求阶乘思想

例 求5的阶乘class NumberPro{public static void main(String[] args){int pro = 1;for(int c = 1; c <= 5; c++){pro *= c;  }System.out.println("5的阶乘是:"+pro);}}

5.1.5 水仙花数

定义: 是一个三位数,它的各个数位上数的立方和等于这个数本身.
例  求出所有水仙花数,并统计个数.class FlowerNum{public static void mian(String[] args){int num = 0;// 明确水仙花数范围for(int d = 100; d <= 999; d++){// 取到个,十,百位的数int ge = d%10;int shi = d/10%10;int bai = d/10/10%10;// 条件判断if(d == (ge*ge*ge + +shi*shi*shi + bai*bai*bai)){Num ++;// 输出水仙花数System.out.println("第"+num+"个水仙花数是:"+d);}// 输出统计变量} System.out.println("水仙花数的个数是:"+num+"个");}}

5.2 while循环

5.2.1 whlie的格式

while循环的格式:初始化语句;            // 1)先初始化赋值while(条件表达式){    // 2)判断条件表达式是否成立,成立,则执行循环体语句-循环体语句;     // 3)执行控制体语句---继续判断条件是否成立,----循环... ...控制体语句;       // 4)执行到条件表达式不成立,while语句结束}
注意 : 一定不能忘了控制体语句(谁++),不然就是死循环了.
示例 : 统计并输出所有水仙花数class FlowerNum1{public static void main(String[] args){// 初始赋值int i = 100;// 统计量初始赋值int  num1= 0;// 控制条件while(i <= 999){// 取个,十,百位int ge = i % 10;int shi = i /10 % 10;int bai = i /10 /10 % 10;// 判断条件if(i == (ge*ge*ge+shi*shi*shi+bai*bai*bai){Num1++;System.out.println("第"+num1+"个水仙花数是:"+i);}i++ ;        // 控制体要写在if外边,while里边.}System.out.println("水仙花个数是:"+ num1+"个");}}

5.3 For和While的区别

1)共同点:都时能够实现循环的效果;
2)从格式有些差异通用格式:for循环:整个操作(初始化语句;条件表达式;控制体语句){        执行语句;}while循环:初始化语句;while(条件表达式){循环体控制体语句}a)从内存角度考虑:for循环结束之后,当前里面的局部变量被释放了,节省内存空间!相对来说,while循环,结束之后,依然可以访问到这个变量,整个main方法结束之后,才释放内存,使用过程中,消耗内存空间!for循环比while更好一些!b) 当前明确循环次数时候,优先使用for循环;不明确循环次数使用的while循环for使用最多;

5.4 猜数字小游戏

5.4.1 生成随机数的Math工具

Math类:public static double random() :功能就是获取随机数的功能 (目前先用这个功能)要产生随机数:Math.random()---->获取的结果double [0.0,1.0) ,取不到1.0shil

5.4.2 死循环

常见的两种死循环for循环的死循环格式(开发中使用不多,jdk原码中会见到这种格式)for(;;){//当满足某个条件的时候,结束 ----->break;循环体语句;}
while循环的死循环格式(更多使用)while(true){ //当满足某个条件的时候,结束 ----->break;循环体语句;}

示例 :

// 导包
import java.util.Scanner;
class GuessNum{public static void main(String[] args){// 产生0-100之间的随机数int num = (int)(Math.random()*100+1) ; // 随机数是double类型,强转成int,取不到100,所以+1// 死循环while(true){// 创建扫描对象,需要不断地录入数据Scanner sc = new Scanner(System.in);// 提示并录入对象System.out.println("请您猜一个数字(整数):");// 键盘录入数据int guessNum = sc.nextInt();// 判断if( guessNum > num){System.out.println("您猜的数大了");}else if(guessNum < num){System.out.println("您猜的数小了");}else{System.out.println("恭喜您,猜中了!");//  猜中后就需要中断死循环break;  }}                                           }
}

6. ForFor循环的嵌套

6.1 格式

for(初始化语句;条件表达式;控制体语句){---外层循环//循环体语句for(初始化语句;条件表达式;控制体语句){--- 内层循环循环体语句...}}其实就是将一个for循环语句作为 "循环体"去执行;

示例1: 打印5行5列的*

class Demo{public static void main(String[] args){// 外层循环,控制行数for(int x = 0;x < 5;x++){// 内层循环(实际的循环体),控制每一行有几列for(int y = 0;y < 5;y++){System.out.print("*");     // 用print打印,不用换行,控制每行打印5个.}System.out.println();        // 空打印,控制换行,一共有5行.}}
}

示例2 : 打印5行,第一行1个*…第五行5个 , *

class Demo2{public static void main(String[] args){// 外层循环,控制行数for(int x = 1;x < 5;x++){// 内层循环(实际的循环体),控制每一行有几列,y要取到x,所以用<=for(int y = 0;y <= x;y++){System.out.print("*");  // 用print打印,不用换行,控制每行打印5个.}System.out.println();        // 空打印,控制换行,一共有5行.}}
}

7. 跳转控制语句

7.1 包含

     break ;continue ;return ;

7.1.1 break

break:中断,结束##
不能单独使用,
1)只能在switch或者循环语句中使用;  单循环for循环中使用2)在for循环嵌套中使用 break 标签语句 ;(现在很少见)给外层循环,或者内层循环起名字--->标签语句;

7.1.2 continue


continue:继续---->结束当前循环,立即进入下次循环
也不能单独使用
应用场景:JavaSE网络聊天室(集合+多线程+网络编程):某个功能功能: 上下提醒功能张三    :HashMap<String,Socket> 集合框架当遍历集合的时候,如果是张三本身,应该不提醒,使用continue;李四上线了李四登录--->

7.1.3 return

Java学习第二周总结相关推荐

  1. java学习第二周周记

    JAVA学习第二周周记 **day1.**流程控制语句 ,跳转控制语句 **day2.**什么是方法?方法的重载 **day3.**数组,栈和队列 **day4.**冒泡排序及对象的引入 **day5 ...

  2. Java学习---第二周周报

    第二周周报 收获 关于第一周知识的查漏补缺 JDK,JRE,JVM 分别是什么,彼此之间的关系是怎么样的? JDK为Java语言的软件开发工具包,是整个Java的核心:包含JRE和JVM JVM是Ja ...

  3. Java学习第二周(2)--排序算法与二维数组

    声明:由于学习环境为JDK1.8,所有有关Java的代码均在JDK1.8环境中测试通过,若环境发生变换,代码可能会发生错误.     本周的学习难度较上周有明显提升,今天所学习的排序算法有很多需要理解 ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  5. 深入理解吴恩达老师深度学习课程(01神经网络和深度学习 第二周)

    深入理解吴恩达深度学习(01神经网络和深度学习 第二周) 1引言 2.1 二分类(Binary Classification) 2.1.1 符号定义(视频给出的) 2.2 逻辑回归(Logistic ...

  6. Python学习第二周总结

    Python学习第二周总结 ​ 第二周主要学了python中几种常见的数据结构,分别是列表.元组.字符串.集合.字典重点就是怎么创建和使用这些数据结构,操作方法更是一定要掌握的. 一.列表 1.1 定 ...

  7. invader的java学习第二天基础篇

    invader的java学习第二天基础篇 一.深入了解第一个Hello World程序 public class Hello World{ public static void main(String ...

  8. 吴恩达深度学习第二周--logistic回归作业1

    吴恩达深度学习第二周–logistic回归作业1 本系列为吴恩达老师深度学习作业的总结,其中参考了很多优秀的文章,本文为了方便日后的复习与巩固,更为详细的作业讲解参考 目录 吴恩达深度学习第二周--l ...

  9. 我的JAVA学习第一周知识总结,个人感受小结

    JAVA学习第一周 1,了解三种开发模型 2,建包.建类的规范格式 3,了解不同数据类型 4,JAVA环境搭建 5,JVM.JRE.JDK是什么 6,if/else if语句的使用 7,各个语句swi ...

最新文章

  1. 分布式缓存之Memcache
  2. 使用css制作三角,兼容IE6,用到的标签divsspan
  3. python 百度百科 爬虫_python简单爬虫
  4. nofollow标签_SEO技术动态:谷歌升级Nofollow标签的作用
  5. 【java】JOptionPane的几种方法的作用
  6. 视频教程-Dubbo视频教程-Java
  7. segnet和unet区别_SegNet图像分割网络直观详解
  8. 不使用脚手架搭建vue项目
  9. 内存继续涨价 LPDDR4/LPDDR4X内存标准升级
  10. 菜鸟蜕变成高手之菜鸟血淋淋的总结
  11. 软件是用计算机解决问题,电脑常见的软件问题及解决方法
  12. 酷安市场WanAndroid 客户端1.7版
  13. SAP PR PO采购订单 行项目中时间与时区
  14. linux中匿名用户怎么登陆_linux 匿名登陆
  15. java 小数乘法_集合复习教案
  16. SQL语言的四大功能
  17. 2021网易互联网秋招内推批前端笔试
  18. esp32之点亮一盏灯
  19. 基于MyEclipse+JSP+Mysql+Servlet+Tomcat开发得简单的网络考试系统
  20. 华为模拟器eNSP安装史上最全。。

热门文章

  1. java连连看实验报告_连连看实验报告
  2. 大棚养殖韭菜如何保障产量?资产监测设备保障大棚养殖韭菜
  3. vue项目整合UEditor看这一篇就够了
  4. 内存不能为read修复工具
  5. 我的世界整合包内自带服务器,我的世界服务器整合包怎么用
  6. putty软件下载和教程
  7. 11.2.0.4,ASM实例异常宕机,ORA-29740: evicted by instance number 2
  8. 参加IBM的IBM2007SOA与企业高峰论坛的感受
  9. 带宽的定义标准是什么
  10. 16.体测成绩判定(c函数调用)