Java学习DAY3~程序逻辑控制~2010-12-13

JAVA 学习DAY3——程序逻辑控制

一、顺序结构

        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");

结果:

aaa
bbb
ccc

Process finished with exit code 0

二 、分支结构

2.1 if语句

  • 基本语法形式1
    if(布尔表达式){
    //条件满足时需要执行的代码
    }

  • 基本语法形式2
    if(布尔表达式){
    //条件满足时需要执行的代码
    }else if(布尔表达式){
    //条件满足时需要执行的代码
    }else {
    //条件不满足时执行代码
    }

  • 代码示例1

        //判断成绩
        int score=90;
        if (score>=90) {
            System.out.println("优秀");
        }else if (score>=80) {
           System.out.println("良好");
        }else if (score>=70) {
           System.out.println("中等");
        } else if (score >= 60) {
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }

结果

优秀

Process finished with exit code 0

  • 示例代码2
        //键盘输入的判断奇偶数
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num=scanner.nextInt();
        if (num%2==1) {
            System.out.println("奇数");
        }else {
            System.out.println("偶数");
        }

结果1

请输入一个整数:
2
偶数

Process finished with exit code 0

结果2

请输入一个整数:
5
奇数

Process finished with exit code 0

结果3

请输入一个整数:
-1
偶数

Process finished with exit code 0

从结果3可以看出我们的代码是有些缺陷的,它无法判断负数的奇偶。

  • 示例代码3
        //判断正负数
        Scanner scanner=new Scanner(System .in);
        System.out.println("请输入一个整数:");
        int num=scanner.nextInt();
        if (num>0) {
            System.out.println("num是正数");
        }else if (num<0) {
            System.out.println("num是负数");
        }else {
            System.out.println("num是0");
        }

结果1

请输入一个整数:
3
num是正数

Process finished with exit code 0

结果2

请输入一个整数:
-1
num是负数

Process finished with exit code 0

结果3

请输入一个整数:
0
num是0

Process finished with exit code 0
  • 示例代码4
        //判断是否是闰年
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入年份:");
        int year=scanner.nextInt();
        //判断是否是世纪闰年
        if (year%100==0) {
            if (year%400==0) {
                System.out.println("是闰年");
            }else {
                System.out.println("不是闰年");
            }
        }else{
            //判断是否是普通闰年
            if (year%4==0) {
                System.out.println("是闰年");
            }else {
                System.out.println("不是闰年");
            }
        }

结果1

请输入年份:
2020
是闰年

Process finished with exit code 0

结果2

请输入年份:
1997
不是闰年

Process finished with exit code 0

2.2 switch语句

switch语句使用有局限性

  • switch表达式()里能填写类型有限,只有这几种:整数/枚举/字符/字符串
  • switch的break容易遗漏
  • switch难以表达复杂的条件
  • switch语句虽然支持嵌套但是嵌套起来很丑很长。
  • 代码示例:
        //switch语句
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入今天是星期几");
        int day=scanner.nextInt();
        switch (day) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
            default:
                System.out.println("输入有误");
                break;

结果

请输入今天是星期几
3
星期三

Process finished with exit code 0
请输入今天是星期几
9
输入有误

Process finished with exit code 0

三、循环结构

3.1.while语句

  • 基本语法格式
    while(循环条件){
    循环语句;
    }
    循环条件为true,则执行循环语句,否则结束循环。
  • 代码示例1
        int num=1;
        while(num<=10){
            System.out.println(num);
            num++;

结果

1
2
3
4
5
6
7
8
9
10

Process finished with exit code 0
  • 代码示例2
        //求1-100的和
        int num=1;
        int sum=0;
        while(num<=100) {
            sum+=num;
            num++;
        }
        System.out.println(sum);

结果:

5050

Process finished with exit code 0
  • 代码示例3
        //计算5的阶乘
        int num=1;
        int result=1;
        while (num<=5) {
            result*=num;
            num+=1;
        }
        System.out.println(result);

结果

120

Process finished with exit code 0
  • 代码示例4
        //计算1!+2!+3!+4!+5!的和
        int num=1;
        int sum=0;
        //外层循环负责阶乘求和
        while (num<=5) {
            int temp=1;
            int i=1;
            //内层循环求阶乘
            while(i<=num) {
                temp*=i;
                i++;
            }
            System.out.println(temp);
            sum+=temp;
            num++;
        }
        System.out.println(sum);

结果

1
2
6
24
120
153

Process finished with exit code 0

3.2 break语句

  • break的功能是让循环提前结束
  • 代码示例 不加break
        //找到100-200中第一个3的倍数
        int num=100;
        while(num<=200) {
            if (num%3==0) {
                System.out.println("找到了3的倍数,为:"+num);
            }
            num++;
        }

结果

找到了3的倍数,为:102
找到了3的倍数,为:105
找到了3的倍数,为:108
找到了3的倍数,为:111
找到了3的倍数,为:114
找到了3的倍数,为:117
找到了3的倍数,为:120
找到了3的倍数,为:123
找到了3的倍数,为:126
找到了3的倍数,为:129
找到了3的倍数,为:132
找到了3的倍数,为:135
找到了3的倍数,为:138
找到了3的倍数,为:141
找到了3的倍数,为:144
找到了3的倍数,为:147
找到了3的倍数,为:150
找到了3的倍数,为:153
找到了3的倍数,为:156
找到了3的倍数,为:159
找到了3的倍数,为:162
找到了3的倍数,为:165
找到了3的倍数,为:168
找到了3的倍数,为:171
找到了3的倍数,为:174
找到了3的倍数,为:177
找到了3的倍数,为:180
找到了3的倍数,为:183
找到了3的倍数,为:186
找到了3的倍数,为:189
找到了3的倍数,为:192
找到了3的倍数,为:195
找到了3的倍数,为:198

Process finished with exit code 0

代码没有停止寻找,一直找完了100-200之间所有的3的倍数

  • 代码示例 加上break
        //找到100-200中第一个3的倍数
        int num=100;
        while(num<=200) {
            if (num%3==0) {
                System.out.println("找到了3的倍数,为:"+num);
                break;
            }
            num++;
        }

结果

找到了3的倍数,为:102

Process finished with exit code 0

3.3 continue

continue的功能是跳过这次循环,立即进入下次循环

  • 代码示例 不加continue
        //找到100-200中所有的3的倍数
        int num=100;
        while (num<=200) {
            if (num%3==0) {
                num++;
               continue;
            }
            System.out.println("找到了3的倍数,为:"+num);
            num++;

结果

找到了3的倍数,为:100
找到了3的倍数,为:101
找到了3的倍数,为:103
找到了3的倍数,为:104
找到了3的倍数,为:106
找到了3的倍数,为:107
找到了3的倍数,为:109
找到了3的倍数,为:110
找到了3的倍数,为:112
找到了3的倍数,为:113
找到了3的倍数,为:115
找到了3的倍数,为:116
找到了3的倍数,为:118
找到了3的倍数,为:119
找到了3的倍数,为:121
找到了3的倍数,为:122
找到了3的倍数,为:124
找到了3的倍数,为:125
找到了3的倍数,为:127
找到了3的倍数,为:128
找到了3的倍数,为:130
找到了3的倍数,为:131
找到了3的倍数,为:133
找到了3的倍数,为:134
找到了3的倍数,为:136
找到了3的倍数,为:137
找到了3的倍数,为:139
找到了3的倍数,为:140
找到了3的倍数,为:142
找到了3的倍数,为:143
找到了3的倍数,为:145
找到了3的倍数,为:146
找到了3的倍数,为:148
找到了3的倍数,为:149
找到了3的倍数,为:151
找到了3的倍数,为:152
找到了3的倍数,为:154
找到了3的倍数,为:155
找到了3的倍数,为:157
找到了3的倍数,为:158
找到了3的倍数,为:160
找到了3的倍数,为:161
找到了3的倍数,为:163
找到了3的倍数,为:164
找到了3的倍数,为:166
找到了3的倍数,为:167
找到了3的倍数,为:169
找到了3的倍数,为:170
找到了3的倍数,为:172
找到了3的倍数,为:173
找到了3的倍数,为:175
找到了3的倍数,为:176
找到了3的倍数,为:178
找到了3的倍数,为:179
找到了3的倍数,为:181
找到了3的倍数,为:182
找到了3的倍数,为:184
找到了3的倍数,为:185
找到了3的倍数,为:187
找到了3的倍数,为:188
找到了3的倍数,为:190
找到了3的倍数,为:191
找到了3的倍数,为:193
找到了3的倍数,为:194
找到了3的倍数,为:196
找到了3的倍数,为:197
找到了3的倍数,为:199
找到了3的倍数,为:200

Process finished with exit code 0

3.4 for循环

  • 基本语法
    for(表达式1;表达式2;表达式3){
    循环体;
    }
    执行过程:
    1 先执行表达式1,创建循环变量;
    2 执行表达式2,判定循环条件。若循环条件成立,则执行循环体,否则结束循环。
    3 执行循环体。
    4 执行表达式3,更新循环体变量。
  • 代码示例1
        //打印1-10数字
        for (int i=1;i<=10;i++) {

            System.out.println(i);
        }

结果

1
2
3
4
5
6
7
8
9
10

Process finished with exit code 0

  • 代码示例2
        //计算1-100的和
        int sum=0;
        for (int i=1;i<=100;i++) {
            sum+=i;
        }
        System.out.println(sum);

结果

5050

Process finished with exit code 0
  • 代码示例3
      //计算5的阶乘
        int sum=1;
        for(int i=1;i<=5;i++) {
            sum*=i;
        }
        System.out.println(sum);

结果

120

Process finished with exit code 0
  • 代码示例4
    //求1!+2!+3!+4!+5!的和
        int sum=0;
        for (int i=1;i<=5;i++) {
            //里层求阶乘
            int temp=1;
            for (int n=1;n<=i;n++) {
                temp*=n;
            }
            sum+=temp;
        }
        System.out.println(sum);

结果

153

Process finished with exit code 0

四.输入输出

从键盘输入

  • 使用Scanner循环读取N个数字
        //从键盘读取若干数相加
        int sum=0;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您想要输入的数字:");
        // 此处的 hasNext 是判定能否继续从标准输入中读取数据
        while (scanner.hasNext()) {
            int num=scanner.nextInt();
            sum += num;
        }
        System.out.println(sum);

结果

请输入您想要输入的数字:
1
2
3
^D
6

Process finished with exit code 0

注意:这里输入数字结束的时候需要输入Ctrl+D(idea的要求)

五.猜数字游戏

1.如何让系统随机生成一个随机数:

  • Random random=new Random();
    int num=random.nextInt();

代码示例

        Random random=new Random();
        int num=random.nextInt();
        System.out.println(num);

结果

-1467584566

Process finished with exit code 0

根据结果这样肯定是不行的,我们需要对系统随机生成数字进行一个限定。

  • Random random=new Random();
    int num=random.nextInt(bound);
    这个bound代表random取值范围是[0,bound),0可以取到,bound取不到。
    代码示例
        //1.先生成一个1-100的随机整数
        Random random=new Random();
        Scanner scanner=new Scanner(System.in);
        int num=random.nextInt();
        int toGuwss=random.nextInt(100)+1;
        System.out.println(toGuwss);

结果

17

Process finished with exit code 0

2.游戏规则

系统随机生成一个随机整数1-100,然后由用户输入一个要猜的数字,如果输入的数字比该随机数小,系统会提示“低了”,如果输入的数字比该随机数大,系统提示“高了”,如果输入数字相等,则提示“猜对了”。

  • 代码示例:
        //1.先生成一个1-100的随机整数
        Random random=new Random();
        Scanner scanner=new Scanner(System.in);
        int toGuwss=random.nextInt(100)+1;//这里+1是因为不+1只能取到0-99。
        while (true) {
            //2.提示用户输入
            System.out.println("请输入要猜的数字[1,100]:");
            int num=scanner.nextInt();
            //3.进行比较
            if (num<toGuwss) {
                System.out.println("低了");
            }else if(num>toGuwss) {
                System.out.println("高了");
            }else {
                System.out.println("恭喜你猜对了");
                break;
            }

        }

结果:

请输入要猜的数字[1,100]50
低了
请输入要猜的数字[1,100]75
低了
请输入要猜的数字[1,100]85
低了
请输入要猜的数字[1,100]90
高了
请输入要猜的数字[1,100]87
低了
请输入要猜的数字[1,100]88
低了
请输入要猜的数字[1,100]89
恭喜你猜对了

Process finished with exit code 0

写在最后的话

注意:我写的笔记中的代码都没有主函数,但是其实他们都是在主函数中的,所以才能运行
给一个猜数字游戏的完整代码:

import java.util.Random;
import java.util.Scanner;

public class test20201207 {

    public static void main(String[] args) {
        //1.先生成一个1-100的随机整数
        Random random=new Random();
        Scanner scanner=new Scanner(System.in);
        int toGuwss=random.nextInt(100)+1;//这里+1是因为不+1只能取到0-99。
        while (true) {
            //2.提示用户输入
            System.out.println("请输入要猜的数字[1,100]:");
            int num=scanner.nextInt();
            //3.进行比较
            if (num<toGuwss) {
                System.out.println("低了");
            }else if(num>toGuwss) {
                System.out.println("高了");
            }else {
                System.out.println("恭喜你猜对了");
                break;
            }

        }


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值