Java程序逻辑控制

1.顺序结构

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

如果调整代码的书写顺序, 则执行顺序也发生变化

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

2.分支结构

2.1 if语句

基本语法形式1

if(布尔表达式){
    语句块1;           
}else{
    语句块2;
}
//如果表达式为真,则执行语句块1.否则执行语句块2

基本语法形式2

if(布尔表达式){
    语句块1; 
}
​
//如果表达式为真,则执行语句块1

基本语法形式3

if(布尔表达式1){
   语句块1;
}else if(布尔表达式2){
   语句块2;
}else{
   语句块3;
}
​
//如果表达式1为真。执行语句块1;语句块2为真,执行语句块2;否则执行语句块三

2.2 switch语句

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

3.循环结构

循环结构: while 、 for 、 do while()

循环就是重复的做一件事情

3.1while循环

基本语法格式:
    
while(布尔表达式){
    语句块;
}//如果布尔表达式为真,则执行语句块

代码示例1:打印 1-10 的数字

public static void main(String[] args) {
    int i = 1;//循环初始条件
    while (i <= 10){//循环判断条件
        System.out.println(i);
         i++;//循环改变条件
     }
}
​

代码示例2:打印 1-10 的数字

public static void main(String[] args) {
      int a = 0;
      int sum = 0;
      while(a<=100){
          sum = sum + a;
          a++;
      }
        System.out.println(sum);
    }

出现死循环的原因:判断条件永远为真

3.2 break

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

代码示例:找到 100 - 200 中所有 3 的倍数

public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            if(i % 3 == 0){
                System.out.println(i);
                break;
            }
            i++;
        }
    }

3.3 continue

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

代码示例:找到 100 - 200 中所有 3 的倍数

    public static void main(String[] args) {
        int i = 100;
        while(i <= 200){
            if(i % 3 != 0){
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
    }
//执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句

3.4 for循环

基本语法:

for(表达式1;表达式2;表达式3){ 
    语句块; 
}

//表达式1:用于初始化循环变量
//表达式2:循环条件,一定是布尔表达式
//表达式3:更新循环变量

代码示例:打印1-10的数字

public static void main(String[] args) {
	for (int i = 1; i <= 10 ; i++) {
    System.out.println(i);
    }
}

代码示例:计算5的阶乘的和

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

3.5 do while循环

基本语法

do{ 
	循环语句; 
}while(循环条件);
//先执行循环语句, 再判定循环条件

代码示例:打印haha

int i = 0;
do{
    System.out.println("haha");
}while(i != 0);

//运行结果: haha

至少会被执行一次

代码示例:打印 1 - 10

int num = 1; 
do { 
 System.out.println(num); 
 num++; 
} while (num <= 10)

4.输入输出

4.1输出到控制台

基本语法:

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

println 输出的内容自带 \n, print 不带 \n

4.2从键盘输入

import java.io.IOException; // 需要导入 IOException 包
try { 
 System.out.print("Enter a Char:"); 
 char i = (char) System.in.read(); 
 System.out.println("your char is :"+i); 
} catch (IOException e) { 
 System.out.println("exception"); 
} 
//这种方式比较麻烦, 我们不推荐使用.

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

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in); 
System.out.println("请输入你的姓名:"); 
String name = sc.nextLine(); 
System.out.println("请输入你的年龄:"); 
int age = sc.nextInt(); 
System.out.println("请输入你的工资:"); 
float salary = sc.nextFloat(); 
System.out.println("你的信息如下:"); 
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
sc.close(); // 注意, 要记得调用关闭方法

代码示例:

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);//h
        int a = scan.nextInt();
        System.out.println("这是一个整数: "+a);
        String name = scan.nextLine();
        System.out.println("姓名是:"+name);
    }

4.3循环输入

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    
   //crtl+d结束进程
    while(scan.hasNext()){
        int n = scan.nextInt();
        System.out.println("整数是: "+n);
    }
}

运行结果:

 

5.猜数字游戏

游戏规则:

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

代码示例:

public static void main(String[] args) {
    Random random = new Random();//电脑随机生成数字
    int randNum = random.nextInt(100)+1;//[1,101)
    Scanner scan = new Scanner(System.in);
    while(true){
        System.out.println("请输入你要猜的数字[1-100]: ");
        int num = scan.nextInt();
        if(num < randNum){
            System.out.println("低了");
        }else if(num ==randNum){
            System.out.println("找到了");
            break;//非常重要
        }else{
            System.out.println("高了");
        }

    }
}

运行结果:

请输入你要猜的数字[1-100]: 
50
低了
请输入你要猜的数字[1-100]: 
70
高了
请输入你要猜的数字[1-100]: 
60
低了
请输入你要猜的数字[1-100]: 
65
高了
请输入你要猜的数字[1-100]: 
63
高了
请输入你要猜的数字[1-100]: 
62
高了
请输入你要猜的数字[1-100]: 
61
找到了

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值