前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三节:带你详解Java的操作符,控制流程以及数组

第三节:带你详解Java的操作符,控制流程以及数组

作者头像
达达前端
发布2019-07-03 11:13:19
2700
发布2019-07-03 11:13:19
举报
文章被收录于专栏:达达前端

前言

大家好,我是 Vic,今天给大家带来带你详解Java的操作符,控制流程以及数组的概述,希望你们喜欢

操作符

算数操作符

一般的 +,-,*,/,还有两个自增 自减 ,以及一个取模 % 操作符。 这里的操作算法,一定要掌握 好强制类型转换和自动类型转换。

理解%取模

取模就是在数学中的求余,输出的结果就是余数的多少

代码语言:javascript
复制
//可以亲自试试效果,输出为1
public class Test {
 public static void main(String[] args) {
  int i = 3;
  int j = 2;
  int z = i % j;
  System.out.println(z);
 }
}

理解自增 自减

++ -- , i++ 等价于 i = i+1 ; i-- 等价于 i = i-1 ; i++ 的理解为 先取值,再运算; ++i 的理解为 先运算,再取值。

代码语言:javascript
复制
//示例代码理解
public class Test {
 public static void main(String[] args) {
  int i = 2;
  System.out.println(i++); //先取值,再运算,那么打印的值,就是先取值,为i=2;
  //如果再次打印i的值
  System.out.println(i); //输出i=3;
 }
}
代码语言:javascript
复制
//示例代码理解
public class Test {
 public static void main(String[] args) {
  int j = 2;
  System.out.println(++j); //先运算,再取值,那么打印的值,就是先运算,++j,那么j=3,打印结果为3;
  //如果再次打印i的值
  System.out.println(j); //输出j=3;
 }
}

关系操作符

  • 关系操作符:> 大于 ; >= 大于或等于 ;< 小于 ;<= 小于或等于 ;== 是否相等 ;!= 是否不等

逻辑运算符

  • 逻辑运算符:&为长路与, &&为短路与;| 为长路或,|| 为短路或;!为取反;^ 为异或

长路和短路的区别:

  • 长路: 两侧,都会被运算
  • 短路: 只要第一个是false,那么第二个就不进行运算(短路只要第一个通过,那么第二个就不进行运算)

什么是异或: 口诀:不同为true,相同为false

位操作符

  • 遵循规则:0看做是false,1看做是true. &:参与运算的两个数,若相应位数的值都为1,则该位结果值为1,否则为0。 (相同为1(前提两个都为1,没有0的情况),不同为0) |:参与运算的两个数,若相应位数中,只要有一个1,结果就为1。 (有1为1,没1为0) ^:参与运算的两个数,若相应位数中,相同则结果为0,否则为1。 (相同为0(可以两个数为1,结果为0;可以两个数为0,结果为0),不同为1) ~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。
  • 补充原码、补码、反码的一点知识: 1.正数的反码、补码都与原码一样 2.负数的反码、补码与原码不同。

左移 右移

代码语言:javascript
复制
public class Test {
 public static void main(String[] args){
  int i = 12;
 System.out.println(i<<1); //代表乘2,结果为24
 System.out.println(i>>1);//同理,举一反三,结果可得6
 }
}

三元运算符

格式:表达式 ? 值1 : 值2 如果表达式为 true,那么结果返回值1;否则返回值2。

控制流程

if语句的格式:

代码语言:javascript
复制
if(表达式1){
  表达式2;
}

if else 语句的格式:

代码语言:javascript
复制
if(表达式1){
  表达式2;
}else{
  表达式3;
}

switch语句格式:

代码语言:javascript
复制
 switch (mon) {
  case 1:
  case 2:
  case 3:
  System.out.println(mon + "月是春天");
  break;
  case 4:
  case 5:
  case 6:
  System.out.println(mon + "月是夏天");
  break;
  case 7:
  case 8:
  case 9:
  System.out.println(mon + "月是秋天");
  break;
  case 10:
  case 11:
  case 12:
  System.out.println(mon + "月是冬天");
  break;
  default:
  System.out.println("一年有12个月");
}

while和do-while循环语句

while为true时,继续执行;do-while中条件为true时,继续执行,至少会执行一次。

for语句格式:

代码语言:javascript
复制
for(int i=0;i<10;i++){
 表达式语句;
}

continue和break

  • continue 为继续下一次循环
  • break 为结束整个循环

数组

  • 数组是具有相同类型数据的集合 声明一个数组 int[] a ;创建数组的长度 int[] a = new int[5];给数组赋值 int[] a = new int[]{1,2,3,45,5};int[] a = {2,4,24,5,7,66,55,1,2,3,4};

数组的选择排序

代码语言:javascript
复制
//这种就是排序算法,比如有6个人,第一轮要进行5次比较
//第一轮
for(int index=1;index<arr.length;index++)
{
if(arr[0]>arr[index])
{
  int temp = arr[0];
  arr[0] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第二轮
for(int index=2;index<arr.length;index++)
{
if(arr[1]>arr[index])
{
  int temp = arr[1];
  arr[1] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第三轮
for(int index=3;index<arr.length;index++)
{
if(arr[2]>arr[index])
{
  int temp = arr[2];
  arr[2] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第四轮
for(int index=4;index<arr.length;index++)
{
if(arr[3]>arr[index])
{
  int temp = arr[3];
  arr[3] = arr[index];
  arr[index] = temp;
 }
}
print(arr);

//第五轮
for(int index=5;index<arr.length;index++)
{
if(arr[4]>arr[index])
{
  int temp = arr[4];
  arr[3] = arr[index];
  arr[index] = temp;
 }
}
print(arr);

//第六轮没有,我们arr.length=6举例
//int index = 6;index<arr.length; false

public static void selectionSort(int[] arr)
{
for(int count=1;count<arr.length;count++)
{
 for(int index=count;index<arr.length;index++)
 {
  if(arr[count-1]>arr[index])
  {
    int temp = arr[count-1];
    arr[count-1] = arr[index];
    arr[index] = temp;
  }
 }
}

数组的冒泡排序

代码语言:javascript
复制
public class Demo{
 public static void main(String[] args){
 int[] nums = { 3,1,7,5,8,9,23,45};
 for(int i = 0; i< nums.length-1;i++){
  for(int j = 0;j<nums.length-1-i;j++){
   if(nums[j]>nums[j+1]){
   int temp = nums[j];
   nums[j] = nums [j+1];
   nums[j+1] = temp;
 }
}
 for(int j = 0; j<nums.length;j++){
 Systm.out.println(nums[j]);
 }
}

数组的打印

代码语言:javascript
复制
//使用for
 int[] i = { 2,3,4,5,6 };
 for(int each : i){
  System.out.println(each);
 }

二维数组的表达

代码语言:javascript
复制
int a[][] = new int[][]{
   {1,2,3},
   {4,5,6},
   {7,8,9}
};

总结

  • 本文讲了带你详解Java的操作符,控制流程以及数组,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 操作符
    • 算数操作符
    • 理解%取模
    • 理解自增 自减
      • 关系操作符
        • 逻辑运算符
          • 位操作符
            • 左移 右移
              • 三元运算符
                • continue和break
            • 控制流程
            • 数组
            • 数组的选择排序
            • 数组的冒泡排序
              • 数组的打印
                • 二维数组的表达
                  • 总结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档