JavaSE day4

逻辑操作符

逻辑操作符 ! 、&&、丨丨和 ^可以用于产生复合布尔表达式。 有时候,是否执行一条语句是由几个条件的组合来决 定的。可以使用逻辑操作符组合这些条件。逻 辑 操 作 符 ( logical operator) 也称为布尔操作符 (boolean operator), 是 对布尔值进行的运算,它会创建新的布尔值。非操作符(I) 对 true 取反是 false, 而 false 取反之后则是 true。当且仅当两个操作数都为 true 时,这 ’ ’ 两个布尔型操作数的与( &&) 为 true。当至少有一个操作数为 true 时,两个布尔型操作数的或(丨丨)为 true。(M。当且仅当两 个操作数具有不同的布尔值时,两个布尔型操作数的异或( ^ ) 才为 true。注意,pl ^p2 等同 于 pl!>p20

操作符的优先级和结合规则

优先级规则定义了操作符的先后次序,它包含了目前所学的所有操作符。 它们从上到下按优先级递减的方式排列。逻辑操作符的优先级比关系操作符的低,而关系操 作符的优先级比算术操作符的低。优先级相同 的操作符排在同一行。 如果优先级相同的操作符相邻,则结合规则(associativity)决定它们的执行顺序。除了 陚值操作符之外,所有的二元操作符都是左结 合的(left-associative)。例如,由于 + 和-的 优先级相同并且都是左结合的。

小结

1.boolean 类型变量可以存储值 true 或 false。
2.关系操作符(<、<• 、==、! =、>、>=)产生一个布尔值。
3.选择语句用于可选择的动作路径的编程。选择语句有以下几种类型:单分支 "if 语句、双分支 ifelse 语句、嵌套 if 语句、多分支 if-else 语句、switch 语句和条件表达式。
4 .各种 if 语句都是基于布尔表达式来控制决定的。根据表达式的值是 true 或 false, 这些语句选择 两种可能路径中的一种。
5.布尔操作符 &&、| | 、丨和 A 对布尔值和布尔变量进行计算。
6.当对 pl&&p2 求值时,Java 先求 pi 的值,如果 pi 为 true, 再对 p2 求值;如果 pi 为 false, 就不 再对 P2 求值。当对 pill p2 求值时,Java 先求 pi 的值,如果 pi 为 false, 再对 p2 求值;如果 pi 为 true, 就不再对 p2 求值。因此,&& 也称为条件与操作符或短路与操作符,而丨丨也称为条件或 操作符或短路或操作符。
7.switch 语句根据 char、byte,short、int 或者 String 类型的 switch 表达式来进行控制决定。
8.在 switch 语句中,关键字 break 是可选的,但它通常用在每个分支的结尾,以中止执行 switch 语句的剩余部分。如果没有出现 break 语句,则执行接下来的 case 语句。
9.表达式中的操作符按照括号、操作符优先级以及操作符结合规则所确定的次序进行求值。
10.括号用于强制求值的顺序以任何顺序进行。
11.具有更高级优先权的操作符更早地进行操作。对于同样优先级的操作符,它们的结合规则确定操作 的顺序。
12.除开賦值操作符的所有二元搡作符都是左结合的,陚值操作符是右结合的。

循环语句

while适合于循环结束条件已知 但是循环次数未知的情况
for 适合于循环次数已知的情况
for和while之间是可以完全互换的
while 循环
循环初始化

while(循环继续条件){

  循环体

  循环间距

}
while(true){//死循环

  循环体

  循环间距

  if(循环结束条件){

    break;

  }

}	

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

do{

  循环体;//循环初始化 循环间距

}while(循环结束条件)

for循环

for( 循环初始化 ; 循环继续条件 ; 循环间距){
	
	  循环体
	
	}

嵌套循环
打印图形

public class Test {
 public static void main(String[] args) {
  /*
   *
   **
   ***
   ****
   *****
  */
  for(int i=1;i<=5;i++){
   for(int j=1;j<=i;j++){
    System.out.print("*");
   }
   System.out.println();
  }
  /*
   
   *******
   ******
   *****
   ****
   ***
   **
   *
  */
  for(int i=1;i<=7;i++){
//   for(int j=1;j<=8-i;j++){
//    System.out.print("*");
//   }
   for(int j=8-i;j>=1;j--){
    System.out.print("*");
   }
   System.out.println();
  }
  
  
  /*
   
    -----*
    ----**
    ---***
    --****
    -*****
    ******
  */
  for(int i=1;i<=6;i++){
   for(int k=1;k<=6-i;k++){
    System.out.print(" ");
   }
   for(int j=1;j<=i;j++){
    System.out.print("*");
   }
   System.out.println();
  }
  
  /*
     i j
   *  1      1
   **  2     1 2
   ***  3    1 2 3
   **** 4   1 2 3 4
   ***** 5  1 2 3 4 5
   ****** 6 1 2 3 4 5 6
   ***** 7  1 2 3 4 5  6 7
   **** 8   1 2 3 4  5 6 7 8 
   ***  9    1 2 3   4 5 6 7 8 9
   **  10     1 2   3 4 5 6 7 8 9 10
   *  11      1    2 3 4 5 6 7 8 9 10 11
  */
  System.out.println("=============================================");
  for(int i=1;i<=11;i++){
   for(int j=1;j<=i&&(i+j)<=12;j++){
    System.out.print("*");
   }
   System.out.println();
  }
  /*    i k
   ----*  1 -4 
   ---* *  2 -3
   --* * *  3 -2
   -* * * * 4 -1
   * * * * * 5 0
   -* * * * 6 1
   --* * *  7 2
   ---* *  8 3
   ----*  9 4
  */
  for(int i=1;i<=9;i++){
   for(int k=1;k<=Math.abs(i-5);k++){
    System.out.print(" ");
   }
   for(int j=1;j<=i&&(i+j)<=10;j++){
    System.out.print("* ");
   }
   System.out.println();
  }
  
  /*   
       *
      * *
     *   *
    *     *
   *       *
    *     *
     *   *
      * *
       *
   */
  for(int i=1;i<=9;i++){
   for(int k=1;k<=Math.abs(i-5);k++){
    System.out.print(" ");
   }
   for(int j=1;j<=i&&(i+j)<=10;j++){
    if(j==1||j==i||j+i==10){
     System.out.print("* ");
    }else{
     System.out.print("  ");
    }
   }
   System.out.println();
  }
 }
} 

在这里插入图片描述

import java.util.Scanner;
public class Demo4_16 {
 public static void main(String[] args){
  //定义两个计数器 分别记录电脑赢的次数和玩家赢的次数
  //pCount  cCount
  Scanner scanner=new Scanner(System.in);
  int pCount=0;
  int cCount=0;
  while(true){
   System.out.print("请输入 0剪刀 1石头 2布:");
   int p=scanner.nextInt();
   int c=(int) (Math.random()*3);
   if(p==c){
    System.out.println("平局,请继续");
   }
   if(p==0&&c==1){
    System.out.println("玩家剪刀,电脑石头,电脑赢啦!");
    cCount++;
   }
   if(p==0&&c==2){
    System.out.println("玩家剪刀,电脑布,玩家赢啦!");
    pCount++;
   }
   if(p==1&&c==2){
    System.out.println("玩家石头,电脑布,电脑赢啦!");
    cCount++;
   }
   if(p==1&&c==0){
    System.out.println("玩家石头,电脑剪刀,玩家赢啦!");
    pCount++;
   }
   if(p==2&&c==0){
    System.out.println("玩家布,电脑剪刀,电脑赢啦!");
    cCount++;
   }
   if(p==2&&c==1){
    System.out.println("玩家布,电脑石头,玩家赢啦!");
    pCount++;
   }
   if(cCount==2||pCount==2){
    break;
   }
  }
  if(cCount==2){
   System.out.println("电脑赢啦!!!");   
  }else{
   System.out.println("玩家赢啦!!!");
  }
 } 
}

猜你喜欢

转载自blog.csdn.net/qq_42393388/article/details/83243982