JavaSE语法(2)程序逻辑控制

3 篇文章 0 订阅

零基础搞定JavaSE语法(2)----程序逻辑控制

这部分内容比较简单,很多与C语言类似,但也有些不同之处,所以还是挨个说说,加深记忆。

顺序结构

顾名思义 按照代码书写的顺序一行一行执行

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 运行结果
//aaa
//bbb
//ccc

分支结构

if语句

if(布尔表达式){
    //条件满足时执行代码
}else{
    //条件不满足时执行代码
}
if(布尔表达式){
    //条件满足时执行代码
}else if(布尔表达式){
    //条件满足时执行代码
}else{
    //条件都不满足时执行代码
}

注意:
1.if / else 语句中可以不加 大括号 . 但是也可以写语句(只能写一条语句). 此时 else 是和最接近的 if 匹配,这点与C语言类似
2.if后的表达式只能是布尔表达式
3. Java 中更推荐 { 放在 if / else 的同一行

Switch语句

switch(整数|枚举|字符|字符串){
 case 内容1 : {
 内容满足时执行语句;
 [break;]
 }
 case 内容2 : {
 内容满足时执行语句;
 [break;]
 }
 ...
 default:{
 内容都不满足时执行语句;
 [break;]
 } 
}

注意:
1.break 不要遗漏, 否则会失去 “多分支选择” 的效果;建议一个 switch 语句最好都要带上 default
2.long类型、float类型、double类型、boolean类型 是不能做Switch参数的,而且Switch的参数不能是一个复杂的表达式,像 a>9
3.Switch支持嵌套,但是写出来的代码很丑,不建议,毕竟咱还是个看脸的世界

循环结构

while循环

while(循环条件){ 
循环语句; 
} 

语法知识基本和C语言一样,重要的是练习,在实践中加强
这里是一些练习题目,感兴趣的大家可以上上手实践一下,也可以交流一下

  1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
  2. 判定一个数字是否是素数
  3. 打印 1 - 100 之间所有的素数
  4. 输出 1000 - 2000 之间所有的闰年
  5. 输出乘法口诀表(要用到字符串的拼接,上篇文章中有讲到哦,小伙伴们可以去看看)
  6. 求两个正整数的最大公约数(辗转相除法)
  7. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
  8. 编写程序数一下 1到 100 的所有整数中出现多少个数字9。
  9. 求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,若是则153是一个“水仙花数”。)
  10. 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序
  11. 写一个函数返回参数二进制中 1 的个数 比如:15 0000 1111 4个1
  12. 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
  13. 输出一个整数的每一位.
  14. 猜数字游戏(不要走开哦,文章最后会讲到,主要是想说明如何生成随机数)

注意:
16. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
17. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
18. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

for循环

for(表达式1;表达式2;表达式3){ 
循环体; 
} 
//表达式1: 用于初始化循环变量.
//表达式2: 循环条件
//表达式3: 更新循环变量.

注意事项与while一致

break

break 的功能是让循环提前结束.

// 找到 100 - 200 中第一个 3 的倍数
int num = 100; 
while (num <= 200) { 
 if (num % 3 == 0) { 
 System.out.println("找到了 3 的倍数, 为:" + num); 
 break; 
 } 
 num++; 
} 
// 执行结果:102 
//执行到 break 就会让循环结束

continue

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

//找到 100 - 200 中所有3的倍数
int num = 100; 
while (num <= 200) { 
 if (num % 3 != 0) { 
 num++; // 这里的 ++ 不要忘记! 否则会死循环. 
 continue; 
 } 
 System.out.println("找到了 3 的倍数, 为:" + num); 
 num++; 
} 
//执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句.

输出到控制台

基本语法

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf("x = %d\n", x); // 格式化输出

格式化输出的转换符不必要专门去记忆,用到的时候根据需求查一下就行

从键盘输入

Scanner读取一个数

需要导包import java.util.Scanner,但IDEA会自动导入

Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt(); //从键盘读取一个整数
float b = scanner.nextFloat(); //从键盘读取一个小数

Scanner读取字符串

Scanner scanner = new Scanner(System.in);
String str1 = scanner.next(); //键入xiaoxiao is a bird
System.out.println(str1); //输出xiaoxiao
String str1 = scanner.nextLine(); //键入xiaoxiao is a bird
System.out.println(str1); //输出xiaoxiao is a bird

注意:
String str1 = scanner.next(); 遇到空格读取结束
String str1 = scanner.nextLine(); 读取整行,但建议把它放在代码的最前面

使用 Scanner 循环读取 N 个数字

Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt()){
   int a= scanner.nextInt();
   System.out.println(a);
}
//当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).在IDEA上是 ctrl + d

猜数字游戏

游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “小了”, 如果输入的数字比该随机数大, 提示 “大了” , 如果输入的数字和随机数相等, 则提示 “猜对了”

提前须知:.电脑如何生成随机数字

Random random = new Random(); //括号里可以写一个数,代表随机种子
int rand = random.nextInt(100)+1; //题目要求生成1-100,所以要加1

参考代码

import java.util.Random; 
import java.util.Scanner;; 
class Test { 
    public static void main(String[] args) { 
    Random random = new Random(); // 默认随机种子是系统时间
    Scanner sc = new Scanner(System.in); 
    int toGuess = random.nextInt(100)+1; 
    while (true) { 
        System.out.println("请输入猜的数字: (1-100)"); 
        int num = sc.nextInt(); 
        if (num < toGuess) { 
        System.out.println("小了"); 
        } else if (num > toGuess) { 
        System.out.println("大了"); 
        } else { 
        System.out.println("猜对了"); 
        break; //猜对了跳出循环
        } 
    } 
    sc.close(); 
    } 
} 

这节内容比较少,主要去实践,一起多加练习吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值