zoukankan      html  css  js  c++  java
  • JavaSE学习(三):按位运算—控制流程(顺序、分支、循环)

     

    第一节 按位运算

    1.1按位运算符&  |

    1.1.1按位运算符可作算术运算

    做算术运算先将十进制转为二进制数,再按位计算,按位与全部为1,才为1,只要有0则为0;按位或只要有1则为1,全部为0才为0。最后按位输出再转为十进制。

    7&3 = 3  -----  0111 & 0011 == 0011  3

    7|3 = 7  -----  0111 & 0011 == 0011  7

    1.1.2按位运算符可作逻辑运算

    按位与&和按位或| 做逻辑功能时,与逻辑与&& 逻辑||逻辑功能一样,不一样的是没有短路功能。

    面试题:& 与&&区别。

    1:运算功能。

    2:短路功能。

    例程:Demo2.java

    1 public class Demo2{
    2   public static void main(String[] args){
    3       int i=5;
    4       int j=6;
    5       System.out.println(++i>j-- & i++<j++  );//false i=7 j=6 并没有发生短路功能
    6        System.out.println(++i>j-- | --i<j++  );//truei=7  j=6  也没有发生短路功能
    7        System.out.println("i="+i+",j="+j);
    8   }
    9 }
    View Code

    1.2其他位运算符

    <<  左位移   >>右位移   ^按位异或

    主要用于对数值的快速缩放。

    第二节 数据结构

    顺序结构、分支结构、循环结构

    2.1顺序结构

    按顺序一步一步执行,常见程序比如main方法。

    2.2分支结构

    2.1.1单分支结构:if else

    语法:

    if (布尔表达式) {

      内容1;

    } else {

      内容2;

    }

    执行步骤:布尔表达式为true执行内容1,为false执行内容2

    例子:Demo3.java

     1 public class Demo3{
     2     public static void main(String[] args) {
     3         int i = 4;
     4         if ( i <  5 ) {
     5             System.out.println("我是if内容");
     6         } else {
     7             System.out.println("我是else内容");
     8         }
     9         System.out.println("我是顺序结构");
    10     }
    11 }
    View Code

    练习:判断两个、三个数的最大值。

    text1.java

     1 public class Text1{
     2     public static void main(String[] args) {
     3         //求两个、三个数的最大值
     4         method1 ();
     5         
     6     }
     7     
     8     public static void method1 () {
     9         int i =3;
    10         int j = 4;
    11         int k = 6;
    12         int max ;
    13         if (i >j) {
    14              max = i;
    15         } else {    
    16              max = j;
    17         }
    18         
    19         System.out.println(max);
    20         System.out.println(k>max ? k:max);        
    21     }
    22     
    23 }
    View Code

    注:有时候省略了else {},只判断单个if内容;单个if时可以省略其后的{},但是不建议省略,因为{}表示作用范围,后期改变内容可能会引起错误。

    2.1.2扫描器函数:Scanner类

    语法:Scanner sc = new Scanner(System.in);  //创建一个扫描器

    常用的方法:

    next(): 获取再后台输入的字符串

    nextInt():获取在控制台输入的int类型数据;

    nextDouble():获取在控制台输入的double类型数据;

    例程:Demo5.java

     

     1 import java.util.Scanner;
     2 
     3 public class Demo5{
     4     //Scanner类的应用
     5     public static void main(String [] args){
     6          //创建sc对象
     7         Scanner sc = new Scanner(System.in);    
     8         System.out.println("请输入字符串:");
     9          //条用next()函数
    10         String str = sc.next();
    11         System.out.println(str);
    12         //获取int类型数据
    13         System.out.println("请输入int数据:");
    14         int i = sc.nextInt();
    15         System.out.println(i);
    16     }
    17 
    18 }
    View Code

     

    练习:判断从键盘输入的年份是闰年还是平年。

    Text2.java

     1 import java.util.Scanner;
     2 
     3 public class Text2{
     4     //Scanner类的应用
     5     public static void main(String [] args){
     6          //创建sc对象
     7         Scanner sc = new Scanner(System.in);    
     8         //获取int类型数据
     9         System.out.println("请输入要判断的年份:");
    10         int i = sc.nextInt();
    11         if (i%4==0 && i%100!=0 || i%400==0 ) {
    12                 System.out.println(i+"年是闰年!");
    13         } else {
    14             System.out.println(i+"年是平年!");
    15         }
    16         
    17     }
    18     
    19 }
    View Code

    2.2.1多分支结构:if else if else 

    语法:

    if (布尔表达式) {

    语句1;

    }  else i f(布尔表达式) {

    语句2;

    }  else {

    语句3;

    }

    执行步骤:满足哪一个条件执行对应内容都不满足执行else里的内容

    注:若同时满足多个条件时,只执行第一次满足条件的语句块,后面的不会执行。

    例程:Demo6.java

     1 import java.util.Scanner;
     2 public class Demo6{
     3     /**
     4          给定分数判断等级
     5     
     6     */
     7     public static void main(String[] args) {
     8         Scanner sc = new Scanner(System.in);
     9         System.out.println("请输入成绩");
    10         int score = sc.nextInt();
    11         
    12         if (score>=90 && score<=100) {
    13              System.out.println("成绩为"+'A');
    14         
    15         }
    16         if (score>=80 && score<90) {
    17              System.out.println("成绩为"+'B');
    18             
    19         }
    20         
    21         if (score>=70 && score<80) {
    22              System.out.println("成绩为"+'C');
    23             
    24         }
    25         
    26         if (score>=60 && score<70) {
    27              System.out.println("成绩为"+'D');
    28             
    29         }
    30         if (score>=0 && score<60) {
    31              System.out.println("成绩不合格");
    32             
    33         }  else {
    34             System.out.println("输入错误!");
    35 
    36         }
    37             
    38     }
    39     
    40 }
    View Code

    练习:输入月份判断季节;

    Text3.java

     1 import java.util.Scanner;
     2 
     3 public class Text3{
     4     //Scanner类的应用
     5     public static void main(String [] args){
     6          //创建sc对象
     7         Scanner sc = new Scanner(System.in);    
     8         //获取int类型数据
     9         System.out.println("请输入要判断的月份:");
    10         int month = sc.nextInt();
    11         if (month==4 || month==3 || month ==5 ) {    
    12             System.out.println(month+"月是春季");
    13 
    14         } else if (month==6 || month==7 || month ==8 ) {
    15             System.out.println(month+"月是夏季");
    16             
    17         } else if (month==9 || month==10 || month ==11 ) {
    18             System.out.println(month+"月是秋季");
    19             
    20         } else if (month==12 || month==1 || month ==2 ) {
    21             System.out.println(month+"月是冬季");
    22             
    23         }  else {
    24             System.out.println("输入月份错误!");
    25 
    26         }
    27         
    28     }
    29     
    30 }
    View Code

    2.2.2多分支结构:switch case

    语法:

    switch (KEY ) {

    case key1:

      语句1;

      break;

    case key2:

    语句1;

    break;

    .......

    default

    语句n;

    }

    语法解析:匹配KEY 与key值,直到值相等时执行对应的语句,若都不匹配则执行default里的内容。

    注: KEY值的数据类型可以是 int、short、byte、char ,不支持long类型。

      JDK5增加了枚举 ,JDK7增加了字符串String类型

    例程:demo9.java

     

     1 public class Demo9{
     2     public static void main(String[] args){
     3         //switch case  key支持String类型  JDK7之后支持
     4         String key="java";
     5         switch(key){
     6             case "c":
     7             System.out.println("学习c语言");
     8             break;
     9             case "java":
    10             System.out.println("学习java语言");
    11             break;
    12             default:
    13             System.out.println("学习Python语言");
    14         }
    15     }
    16 }
    View Code

     

    注意事项:

    1、break作用:作为结束符,防止渗透(从满足KEY值到的内容开始直到执行结束)

    例程:Demo10.java

     1 public class Demo10{
     2      public static void main(String[] args){
     3          //switch case 中break用法
     4          int  key=1;
     5          int count=0;
     6          switch(key){
     7              case 1:
     8                count++;
     9             //   break;
    10              case 2:
    11                count++;
    12                break;//终止渗透
    13                case 3:
    14                count++;
    15                default:
    16                System.out.println("count");
    17          }
    18          System.out.println("count="+count);//2
    19      }
    20 }
    View Code

    练习:1、从键盘输入1~7匹配周几;

    2、从键盘输入月份匹配季节,用switch

    2、default可以省略但是不建议省略,default相当于提示作用;default可以在任意的位置(按顺序执行)。

    例程:Txte5.java

     1 import java.util.Scanner;
     2 
     3 public class Text5{
     4     public static void main(String[] args){
     5         Scanner sc = new Scanner(System.in);
     6         System.out.println("请输入月份");
     7 
     8         int month = sc.nextInt();
     9         switch (month){
    10             case 3:
    11             case 4:
    12             case 5:
    13                 System.out.println(month+"月是春季!");
    14             break;
    15             case 6:
    16             case 7:
    17             case 8:
    18                 System.out.println(month+"月是夏季!");
    19             break;
    20             case 9:
    21             case 10:
    22             case 11:
    23                 System.out.println(month+"月是秋季!");
    24             break;
    25             case 12:
    26             case 1:
    27             case 2:
    28                 System.out.println(month+"月是冬季!");
    29             break;        
    30             default :
    31                System.out.println(month+"月地球没有!");  
    32         }
    33     }
    34     
    35 }
    View Code
  • 相关阅读:
    tp5中的一些小方法
    jquery 中的一写常用方法
    tp5文件上传
    使用json格式输出
    第十六篇:泛型算法结构
    第十五篇:流迭代器 + 算法灵活控制IO流
    第十四篇:一个文本查询程序的实现
    第十三篇:multimap容器和multiset容器中的find操作
    poj 2516(拆点+最小权匹配)
    poj 3686(拆点+最小权匹配)
  • 原文地址:https://www.cnblogs.com/Kanekiyi/p/9500941.html
Copyright © 2011-2022 走看看