java基础语法 ---- day02 --- 控制流程

java控制流程

1.scanner对象 程序和人的交互 获取用户的输入

基本语法:

Scanner s = new Scanner(System.in)

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

Scanner 有两个方法:next方法是等待用户输入操作

  1. Scanner.next() //以空格符结束

  2. Scanner.nextLine() //以回车键结束 可以收到所有的字符

//演示Scanner.nextLine()方式
Scanner scanner = new Scanner(System.in);  //建立从键盘接收数据的流
   System.out.println("从键盘接收数据:");
   
   String  src = scanner.nextLine();//键盘接收到的数保存到src中
   System.out.println("输出的数是:"+src);
   
scanner.close();//随手关闭键盘接收流

题目:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。

public class Demo03 {
 //输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
    public static void main(String[] args) {
        int  s = 0;
        double   sum = 0.0;
        double   ave = 0.0;
      Scanner scanner = new Scanner(System.in);
        System.out.println("请输入任意个数,以非数字结尾:");
        while(scanner.hasNextDouble()){//接收下一个是小数类型的
           double src =scanner.nextDouble();//接收到的数赋值给src
            s++;
            sum += src;
        }
        System.out.println("您输入有"+s+"个数,其总和为:"+ sum +"其平均数为"+(sum/s));
      scanner.close();
    }
}

2.顺序结构

3.选择结构

3.1 if 双选择结构

if(布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为false
}

题:考试分数大于60及格,小于60不及格

public static void main(String[] args) {
    //考试分数大于60及格,小于60不及格
   Scanner scanner = new Scanner(System.in);
    System.out.println("请输入您的分数:");
    int score = scanner.nextInt();
    if(score>60){
        System.out.println("恭喜你,你已经及格了");
    }else{
        System.out.println("没有及格,别灰心,下次再来!!!");
    }
   scanner.close();

题:公司需要收购一个软件,成功会支付100万元,失败了自己找人开发

    public static void main(String[] args) {
    System.out.println("公司是否愿意收购软件:");
     Scanner scanner = new Scanner(System.in );
     String str = scanner.nextLine();
     if(str.equals("true")){ //比较是字符型
         System.out.println("公司成功收购了您的软件,恭喜您获得100万元");
     }else{
         System.out.println("很抱歉,公司决定不收购您的软件,您需要自己找人开发!");
     }
     scanner.close();

3.2 switch多选择结构 变量类型可以是byte,short,int,char,string

switch(expression){
    case value:
        //语句1
        break;
    case value;
        //语句2
        break;
    default;
        //语句
}
//case穿透     switch匹配一个具体的值
public static void main(String[] args) {
  char grade = 'C'; //也可以是字符串的匹配,字符的本质也是数字.每个字符多有它对应的哈希cood值
    switch(grade){
        case 'A':
            System.out.println("优秀");
            break;
        case 'B':
            System.out.println("良好");
            break;
        case'C':
            System.out.println("及格");
            break;
        case'D':
            System.out.println("挂科");
            break;
        default:
            System.out.println("未知等级");

反编译: 从文件夹的层次走,.class文件丢到idea中,看生成之后的源码。

4.循环结构

4.1 while循环

while(布尔表达式){ //布尔表达式为真就执行下面程序
    //循环内容
}

//题1+2+3+4+5+...+100=?
public static void main(String[] args) {
    int i = 0,sum=0;
    while(i<=100){
        sum+=i;
        i++;
    }
    System.out.println("前100个数的和为:"+sum);

4.2 do...while循环

do{
​
•       //代码语句
​
}while(布尔表达式);

while和do...while的区别:

  1. while先判断后执行。do...while是先执行后判断。

  2. do...while总是保证循环体会被至少执行一次。

            int a = 0;
            while(a<0){
                a++;
                System.out.println(a);
            }
            System.out.println("----------------------------------------");
            do{
                System.out.println(a);
                a++;
            }while(a<0);

4.3 for循环

for(初始化;布尔表达式;更新){
    //代码语句
}

练习1:计算0到100之间的奇数和偶数和 对2取余不为0,便是奇数

int oddsum = 0,evensum = 0;
for (int i = 0; i < 100; i++) {
    if(i%2!=0){  //奇数
        oddsum+=i;
    }else {
        evensum += i;
    }
}
System.out.println("奇数和为:"+ oddsum + "偶数和为:"+ evensum);
                //奇数和为:2500偶数和为:2450

练习2:用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个数 换行直接在它的基础上除

int sum =0;
for (int i = 0; i <= 1000; i++) {
    if(i%5==0){
        System.out.print(i+"    ");
        }
    if(i%(5*3)==0){ //在5整除的情况下,每行要输出3个
        System.out.println();
    }
}

练习3:打印九九乘法表

for (int i = 1; i <= 9; i++) {
    for(int j = 1;j <=i;j++){
        System.out.print(i+"*"+j+"="+ i*j+ "\t");
    }
    System.out.println();

比较for循环和while循环的区别

 int a = 1;//初始化条件
 while(a<=100){ //条件判断
     System.out.println(a); //循环体
     a+=2; //迭代
 }
 System.out.println("while循环结束!");
    //初始化条件;条件判断;迭代;
 for (int i = 0; i < 100; i++) {
     System.out.println(i); //循环体
 }
 System.out.println("for循环结束!");

加强for循环:

int[]  numbers = {10,20,30,40,50,60,70};
for(int x:numbers){//遍历数组的元素
    System.out.println(x);
}

5.break和continue

6.打印三角形

public class TestDemo {
    //打印三角形 8行
    public static void main(String[] args) {
        for (int i = 1; i <= 8; i++) {
            for(int j = 8;j>=i;j--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            for (int j = 1; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//运行结果
   *
   ***
  *****
 *******
*********
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小美女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值