java——逻辑控制

这里学过c语言这一节还是很简单的,只是我们这里利用的是java的语法知识。这里我们重点是熟练运用java 的语法,结合前面学的知识。

这一章更多的是利用java语法知识来编程。

if 语句

if(布尔表达式){
// 语句
}

if(布尔表达式){
// 语句1
}else{
// 语句2
}


if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
表达式 1 成立,执行语句 1 ,否则表达式 2 成立,执行语句 2 ,否则执行语句 3。

✅学生成绩

比如:考虑到学生自尊,不公开分数排名,因此:
分数在 [90, 100] 之间的,为优秀
分数在 [80, 90) 之前的,为良好
分数在 [70, 80) 之间的,为中等
分数在 [60, 70) 之间的,为及格
分数在 [ 0, 60) 之间的,为不及格
错误数据
按照上述办法通知学生成绩
if(score >= 90){
System.out.println("优秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else if(score >= 0 && score < 60){
System.out.println("不及格");
}else{
System.out.println("错误数据");
}

判断一个年份是否为闰年

int year = 2000;
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("不是闰年");
}
}

switch 语句

switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}
default:{
内容都不满足时执行语句;
[break;]
}
}
执行流程:
1. 先计算表达式的值
2. case 依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到 break时结束
3. 当表达式的值没有与所列项匹配时,执行 default

注意事项

  • 多个case后的常量值不可以重复
  • switch的括号内只能是以下类型的表达式:
  • 基本类型:bytecharshortint注意不能是long类型  
  • 引用类型:String常量串、枚举类型

  • break 不要遗漏, 否则会失去 "多分支选择" 的效果

java——逻辑控制_第1张图片

  • switch 不能表达复杂的条件
java——逻辑控制_第2张图片
  • switch 虽然支持嵌套 , 但是很丑,一般不推荐 ~
    综上 , 我们发现 , switch 的使用局限性是比较大的

循环结构

while循环

代码示例 4: 计算 1! + 2! + 3! + 4! + 5!
public static void main(String[] args) {
       // 代码示例4: 计算 1! + 2! + 3! + 4! + 5!
        int num=1;
        int sum=0;
        // 外层循环负责求阶乘的和
        while(num<=5) {
            int ret=1;
            int tmp=1;
            // 里层循环负责完成求阶乘的细节.
            while(tmp<=num)
            {
                ret*=tmp;
                tmp++;
            }
            sum+=ret;
            num++;
        }
        System.out.println(sum);
    }

❗break

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

continue

continue 的功能是跳过这次循环 , 立即进入下次循环.执行到 continue 语句的时候 , 就会立刻进入下次循环 ( 判定循环条件 ), 从而不会执行到下方的打印语句


for 循环

for(表达式①;布尔表达式②;表达式③){
表达式④;
}

代码示例4: 计算 1! + 2! + 3! + 4! + 5!

 public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<=5;i++) {
            int ret=1;
            for(int j=1;j<=i;j++)
            {
                ret*=j;
            }
            sum+=ret;
        }
        System.out.println(sum);
    }

输入输出

输出到控制台

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
  • println 输出的内容自带 \n, print 不带 \n
  • printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

从键盘输入

使用 Scanner 读取字符串/整数/浮点数

java——逻辑控制_第3张图片

java——逻辑控制_第4张图片 最好先输入字符串,如果后输入字符串会遇到空格就直接结束。

或者会直接跳过


使用 Scanner 循环读取 N 个数字,并求取其平均值

java——逻辑控制_第5张图片

注意事项: 当循环输入多个数据的时候, 使用 ctrl + D 来结束输入。hasNext()表示是否遇到结束符号。


猜数字游戏

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

public class Logical {
    public static void main(String[] args) {
        Random random=new Random();
        int guess= random.nextInt(100);//[0,100)之间的数
        Scanner scanner=new Scanner(System.in);
        while(true)
        {
            System.out.println("请输入0—100的数");
            int num=scanner.nextInt();//输入
            if(numguess){
                System.out.println("猜大了");
            }
            else {
                System.out.println("猜对了");
                break;
            }
        }
    }
}

java中实现随机数的方法

java——逻辑控制_第6张图片

作弊的方法

java——逻辑控制_第7张图片

好好学习,天天向上

你可能感兴趣的:(java,java,开发语言)