Java基础篇02

1,分支结构:基于条件执行某语句

1)if结构:1条路

语法:

if(boolean){ 语句块 }

执行过程:

判断boolean的值: ​

若为true,则执行语句块1(if整个结束) ​

若为false,则if直接结束

2)if...else结构:2条路

语法:

if(boolean){ ​ 语句块1 ​ }

else{ ​ 语句块2 ​ }

执行过程:

判断boolean的值: ​

若为true,则执行语句块1(整个结束) ​

若为false,则执行语句块2(整个结束)

说明:语句块1和语句块2,必走其中之一------------2选1

3)if...else if结构:多条路

语法:

if(boolean-1){ 语句块1 }

else if(boolean-2){ 语句块2 }

else if(boolean-3){ 语句块3 }

else{ 语句块4 }

执行过程:

判断boolean-1,若为true则执行语句块1(结束),若为false则

再判断boolean-2,若为true则执行语句块2(结束),若为false则

再判断boolean-3,若为true则执行语句块3(结束),若为false则 执行语句块4(结束)

说明:语句块1/2/3/4,只能执行其中之一------------多选1

4)switch...case结构:

优点:效率高、结构清晰

缺点:只能对整数判断相等

break:跳出switch

常见面试题:switch可以作用于什么类型的数据上

-------------------------byte,short,int,char,String,枚举类型

2,Scanner接收用户输入的数据:

在package下:import java.util.Scanner;

在main中:Scanner scan = new Scanner(System.in);

在第2步之下:

System.out.println("请输入年龄:");

​ int age = scan.nextInt();

System.out.println("请输入商品价格:");

double price = scan.nextDouble();

3,循环:反复多次执行一段相同或相似的代码

循环的三要素:

1"循环变量的初始化;

2"循环的条件(以循环变量为基础);

3"循环变量的改变(向着循环的结束变);

(循环变量:在整个循环过程中所反复改变的那个数)

循环结构:

1) while结构:(当......的时候)先判断后执行,有可能一次都不执行

语法:

while(boolean){

语句块-------------反复执行的代码

}

执行过程:

判断boolean的值,若为true则执行语句块, ​

再判断boolean的值,若为true则再执行语句块, ​

再判断boolean的值,若为true则再执行语句块, ​

如此反复,直到boolean的值为false时,while循环结束

猜数字小游戏代码:

public class Guessing {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
        System.out.println(num); //作弊

        //300(大),200(小),250(对)
        System.out.println("猜吧!");
        int guess = scan.nextInt(); //1.
        while(guess!=num){ //2.
            if(guess>num){
                System.out.println("太大了");
            }else{
                System.out.println("太小了");
            }
            System.out.println("猜吧!");
            guess = scan.nextInt(); //3.
        }
        System.out.println("恭喜你猜对了!");
    }
}

2) do...while结构:(直到.......的时候)先执行后判断,至少执行一次

(要素1与要素3相同时,首选do...while)

语法:

do{

语句块

}while(boolean);

执行过程:

先执行语句块,再判断boolean的值,若为true则 ​

再执行语句块,再判断boolean的值,若为true则 ​

再执行语句块,再判断boolean的值,若为true则 ​

再执行语句块,如此反复,直到boolean的值为false,则 do...while结束

猜数字小游戏代码:

public class Guessing {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
        System.out.println(num); //作弊

        //假设num=250
        //300(大),200(小),250(对)
        int guess;
        do{
            System.out.println("猜吧!");
            guess = scan.nextInt(); //1+3
            if(guess>num){
                System.out.println("太大了");
            }else if(guess<num){
                System.out.println("太小了");
            }else{
                System.out.println("恭喜你猜对了");
            }
        }while(guess!=num); //2
    }
}

3)  for结构:应用率高,与次数相关的

语法:

//       1          2        3

for(要素1;要素2;要素3){

语句块/循环体----------------反复执行的代码    4

}

执行过程:

1243243243243243243......2

for循环嵌套用break直接跳出多层循环:

loop:  for(){

         for(){

           for(){
               break loop; //从break跳到loop:的位置。

            }

          }

       }

三种循环结构如何选择:

先看循环是否与次数相关:

  • 若相关-----------------------------直接上for

  • 若无关,再看要素1与要素3是否相同

若相同-------------------直接上do...while

若不同-------------------直接上while

break:跳出循环

continue:跳过循环体中剩余语句而进入下一次循环

随机加法运算器案例:

package day05;
import java.util.Scanner;
//随机加法运算器
public class Addition {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int score = 0; //总分
        for(int i=1;i<=10;i++){ //10次    (1)25+14=?
            int a = (int)(Math.random()*100); //加数a(0到99)
            int b = (int)(Math.random()*100); //加数b(0到99)
            int result = a+b; //存正确答案
            System.out.println("("+i+")"+a+"+"+b+"=?"); //1)出题

            System.out.println("算吧!");
            int answer = scan.nextInt(); //2)答题

            if(answer==result){ //3)判题
                System.out.println("答对了");
                score += 10; //答对1题,加10分
            }else{
                System.out.println("答错了");
            }
        }
        System.out.println("总分为:"+score);
    }
}

补充:

  1. 变量的作用域/范围:

    从变量的声明开始,到包含它最近的大括号结束

  2. 变量的重名问题:

    作用域重叠时,变量不能同名

  3. 生成随机数:

int num = (int)(Math.random()*1000+1); //1到1000

Math.random()--------------0.0到0.9999999999999999...
*1000----------------------0.0到999.99999999999999...
+1-------------------------1.0到1000.9999999999999...
(int)----------------------1到1000

 4.任何复杂的程序逻辑都可以通过三种结构来实现:

  • 顺序结构:从上往下逐行执行,每句必走
  • 分支结构:有条件的执行某语句一次,并非每句必走
  • 循环结构:有条件的执行某语句多次,并非每句必走

回顾基本知识点:

   1.简述java中的八种基本数据类型:
            1)byte:字节型,占用1个字节,存储整数,-128到127
            2)short:短整型,占用2个字节,存储整数,-32768到32767
            3)int:整型,占用4个字节,存储整数,-2^31到2^31-1
            4)long:长整型,占用8个字节,存储整数,-2^63到2^63-1
            5)float:单精度浮点数,占用4个字节,存储小数
            6)double:浮精度浮点数,占用8个字节,存储小数
            7)boolean:布尔型,占用1个字节,存储真或假
            8)char:字符型,占用2个字节,0到65535,存储单个符号
          2.switch可以作用在哪些数据类型上:
            ---byte,short,int,char,String,枚举类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值