目标:

1.理解什么是基本结构

2.掌握分支语句

3.掌握if语句

4.掌握switch语句

第一节:程序基本结构

  1. 顺序结构
  2. 选择结构
  3. 循环结构

1.1 顺序结构

程序从上到下一行一行的执行代码,没有判断和中转。

java 选择条件语句 java选择语句有哪些_代码块

1.2 选择结构

有选择性的执行或者跳过指定代码

java 选择条件语句 java选择语句有哪些_java 选择条件语句_02

1.3 循环结构

重复执行一段代码,直到条件不成立。

java 选择条件语句 java选择语句有哪些_if语句_03

Java的选择结构使用选择语句来实现:

1 if语句

2 switch语句

第二节:if语句

if语句有四种使用形式:

  • if(条件){…}
  • if(条件){…}else{…}
  • if(条件){…}else if(条件){…}else{…}
  • if(条件){ if(条件){...} } else {...}

2.1 简单if语句

if ( 条件 ) {

//代码块

}

java 选择条件语句 java选择语句有哪些_System_04

示例1:java成绩如果大于60,奖励一颗糖
//简单的if语句:
//成绩如果大于60   给奖励
int score = 10;
if(score>60){
System.out.println("给颗糖");
}
示例2:Java成绩大于98分,而且Html成绩大于80分,老师奖励他;或者Java成绩等于100分,Html成绩大于70分,老师也可以奖励他。
if((score1 >98 && score2 > 80 ) || ( score1 == 100 && score2 > 70 )){
//奖励
}

2.2 if-else语句

if ( 条件 ) { 
//代码块1 
}else{ 
//代码块2 
}

java 选择条件语句 java选择语句有哪些_Java_05

示例1:如果是男生就永远18岁,否则永远16岁。

// 如果是男生   就永远18岁

// 如果是 女生 永远16岁

char c = '女';

if(c == '男'){// boolean 结果是true 执行if中   否则执行else中的

System.out.println("永远18岁");

}else{

System.out.println("永远16岁");

}

上机练习1:买体育彩票

如果体彩中了500万,我买车、买房、欧洲旅游

如果没中,继续买。

public static void main(String[] args){
            //1创建input对象
            Scanner input=new Scanner(System.in);
            //2提示
            System.out.println("中500万吗?Y/N");
            String answer=input.next();
            //3判断
            if(answer.equals("y")){  //字符串的判断使用equals方法
                  System.out.println("买房、买车、欧洲旅游...");   
            }else{
                  System.out.println("继续买....");
            }  
      }

 

注意:字符串的判断使用equals方法

上机练习2:输入四位数字的会员号的百位数字等于产生的随机数字即为幸运会员,提示恭喜您中奖了,否则没中奖。

提示: int random=(int)(Math.random()*10); //随机数

注意:Math.random();产生0-1之间的一个数字,含0不含1

public static void main(String[] args){
            //创建Input对象
            Scanner input=new Scanner(System.in);
            //提示
            System.out.println("请输入四位的会员号:");
            int member=input.nextInt();
            //百位
            int bai=member/100%10;
            int ran=(int)(Math.random()*10);   //Math.random();产生0-1之间的一个数字,含0不含1 
            if(bai==ran){
                  System.out.println("中奖了....旅游去吧");
            }else{
                  System.out.println("好好干活...");
            }
      }

 

2.3 多重if语句
if ( 条件1) { 
//代码块1 
}
else if (条件2) { 
//代码块2 
}
...
else { 
//代码块3 
}
示例1:如果成绩大于90并且是男生就送个女朋友,成绩大于90并且是女生送个男朋友,否则...
char c = '女';
    int score = 10;   
    if(score>90 && c=='男'){
           System.out.println("给送个女朋友");    
    }else if(score>90 && c=='女'){
           System.out.println("给送个男朋友");
    }else{
           System.out.println("啥都没有,自己买");
    }
2.4 嵌套if语句
if(条件1) {
if(条件2) {
代码块1
} else {
代码块2
}
} else {
代码块3
}
示例:如果成绩大于90 如果是男生送个宝马, 如果是女生送个LV
      // 如果成绩大于90   如果是男生    如果是女生
            int score = 10;
            if(score>90){
                  if(c=='男'){
                       System.out.println("给送个宝马");
                  }else{
                       System.out.println("给送个LV");
                  }
            }

2.5 特殊的if语句

(不推荐使用)

// 特殊形式 // 必须要求 if 或者 else 语句中只能有一条语句 if(score>60)

System.out.println("有奖励");

else

System.out.println("啥都没有");

上机练习1:输入四个季节:如果春天,输出“春暖花开”,如果是夏天,输出“夏日炎炎”,如果是秋天,则输出"秋高气爽",如果是冬天,则输出"安静祥和"。

import java.util.Scanner;
class  Demo8
{
      public static void main(String[] args) 
      {
            //  == 判断基本数据类型内容是否相等
            // 引用数据类型  ==  判断内存地址
            // 判断内容  String 类型判断内容 equals
            Scanner sc = new Scanner(System.in);
            String str = sc.next();       
      //    boolean falg= str.equals("春天");
         if(str.equals("春天")){
                System.out.println("春暖花开");
          }else if(str.equals("夏天") ){
                System.out.println("夏日炎炎");
          }else if(str.equals("秋天")){
                System.out.println("秋高气爽");
          }else if(str.equals("冬天")){
                System.out.println("安静祥和");   
          }
   }
   }

 

 

第三节: switch语句

switch只适合做等值判断。

语法结构:

switch(表达式){

      case 常量1:

            代码块1;

            break;

      case 常量2 :

            代码块2;

            break;

      case 常量3 :

            代码块3;

            break;

      ...

      default:

            默认代码块;

            break;

}

 

3.1 switch语法规则

  1. 表达式expr的值必须是下述几种类型之一:

byte、short、int、char、enum(枚举);java7之后可以是String。

  1. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
  2. 所有case子句中的值应是不同的,否则会编译出错;
  3. default子句是可选的(不是必须的)
  4. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去

3.2 语法格式

 

switch(表达式expr){
        case const1:
            statement1;
            break;
        case const2:
            statement2;
            break;
            … …
        case constN:
            statementN;
            break;
        default:
            statement_dafault;
            break;
   }

3.3 执行顺序:

1 如果表达式的值和case 相等,就执行case中的代码,如果所有的 case 都不满足需求的时候, 执行default中的内容 2 break 帮助跳出switch 语句, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止。

3.4 练习:

练习一: 简单实现switch语句

int count = 1;

          switch(count){ 

                  case 1:

                       System.out.println("奖励iphonexs");    

                       break;

                  case 2:

                       System.out.println("奖励xiaomi");

                       break;

                  case 3:

                       System.out.println("奖励200元");

                       break;

                  default:

                       System.out.println("给个彩票");

                       break;

            }

 

练习二: 判断 春夏秋冬
Scanner sc = new Scanner(System.in);
          String str = sc.next();
          switch(str){
                case "春天":
                     System.out.println("春暖花开");
                     break;
                case "夏天":
                     System.out.println("闷热");
                     break;
                case "秋天":
                     System.out.println("秋高气爽");
                     break;
                case "冬天":
                     System.out.println("滴水成冰");
                     break;
                default:
                     System.out.println("火星的");
                     break;
          }
练习三: 需求: 利用switch实现一个计算器操作
import java.util.Scanner;
public class Demo13{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.println("请输入第一个操作数");
        int num1=input.nextInt();
        System.out.println("请输入运算符");
        String ope=input.next();
        System.out.println("请输入第二个操作数");
        int num2=input.nextInt();  
        int result=0;      
        switch(ope){
            case "+":
                result=num1+num2;
                break;
            case "-":
                result=num1-num2;
                break;
            case "*":
                result=num1*num2;
                break;
            case "/":
                if(num2!=0){
                   result=num1/num2;
                }else{
                   System.out.println("除数不能为0");
                }
                break;
            case "%":
                result=num1%num2;
                break;
            default:
                System.out.println("输入有误");
                break;
               
        }
        System.out.println("运算结果是:"+result);
       
    }
}
3.5 特殊用法 :case穿透
case穿透: 产生这种现象的原因:由于某个case语句中缺少或者漏写break语句所导致的结果。
// 需求:  打印输出指定的月份的天数
       Scanner sc = new Scanner(System.in);
       int month = sc.nextInt();
       switch(month){
           case 1:    
           case 3:              
           case 5:              
           case 7:              
           case 8:              
           case 10:             
           case 12:
              System.out.println("31天");
              break;
           case 2:
              System.out.println("28天");
              break;
           case 4:       
           case 6:              
           case 9:              
           case 11:
              System.out.println("30天");
              break;     
       }
       System.out.println("Hello World!");
   }