Java学习之旅——逻辑控制+方法

作者:爱塔居

专栏:Java学习

作者简介:大三学生,想要跟大家一起进步,有一个美好的未来~

内容简介:这篇文章介绍的是Java逻辑算法和方法。

一、分支结构

1.1 if语句

1.1.1 语法格式1

if(布尔表达式){

  //语句

}

public class Study10_31 {
    public static void main(String[] args) {
        int a = 10;
        if(a == 10){
            System.out.println("a == 10");
        }
    }
}

 如果布尔表达式结果为true,执行if中的语句,否则不执行。

注意:1.第一个花括号要跟在if语句的后面;

           2.if后面一定跟的是布尔表达式,否则会报错哟~比如这里如果写a=10,就不行了;

          3.尽量格式规范,写的美观,不要省略花括号~

1.1.2 语法格式2

if(布尔表达式){

  //语句1

}else{

  //语句2

}

public class Study10_31 {
    public static void main(String[] args) {
        int a = 10;
        if(a == 10){
            System.out.println("a == 10");
        }else{
            System.out.println("a != 10");
        }
    }
}

如果布尔表达式结果为true,则执行if中语句,否则执行else语句。然后就是注意格式规范了。

1.1.3 语法格式3

if(布尔表达式1){

  //语句1

}else if(布尔表达式2){

  //语句2

}else{

  //语句3

}

public class Test {
    public static void main(String[] args) {
        int score = 70;
        if (score >= 90) {
            System.out.println("优秀");
        } else if (score >= 70 && score < 90) {
            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("编译错误");
        }
    }
}

 表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3。

[小试牛刀]

判断是否是闰年:

public class Test {
    public static void main(String[] args) {
     int year=2000;
     if((year % 400 == 0)||(year % 100 != 0)&&(year % 4 ==0)){
         System.out.println(year+"闰年");
     }else{
         System.out.println("year+不是闰年");
     }
    }
}

 1.2 switch语句

基本语法

switch(表达式){

   case 常量值1:{

      语句1;

     [breal;] 

    }

   case 常量值2:{

     语句2;

     [break;]

   }

    ……

default:{

   内容都不满足时执行语句;

   [break;]

   }

}  

执行流程:
1. 先计算表达式的值
2. case 依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到 break 时结束
3. 当表达式的值没有与所列项匹配时,执行 default
注意事项
1.多个 case 后的常量值不可以重复
2.switch 的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型
3.记得加break
4.swich虽然支持嵌套,但是不推荐,会导致代码不美观

二、循环结构

2.1 while循环

基本语法格式:

while(循环条件){

         循环语句;

}

 循环条件为 true, 则执行循环语句; 否则结束循环。

注意事项
1. if 类似 , while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句 . 建议还是加上 { }
2. if 类似 , while 后面的 { 建议和 while 写在同一行。
3. if 类似 , while 后面不要多写 分号 , 否则可能导致循环不能正确执行。
int num = 1 ;
while ( num <= 10 ); {
System . out . println ( num );
num ++ ;
}
// 执行结果
[ 无任何输出 , 程序死循环 ]
此时 ; while 的语句体 ( 这是一个空语句 ), 实际的 { } 部分和循环无关 . 此时循环条件 num <= 10 恒成立 , 导致代码死循环了。

[小试牛刀]

1.打印1-10的数字

public class Test {
    public static void main(String[] args) {
      int a=1;
      while (a<=10){
          System.out.println(a);
          a++;
      }
    }
}

2.计算1-100的和

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

 3.计算5的阶乘

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

4.计算1!+2!+3!+4!+5!

public class Test {
    public static void main(String[] args) {
        int a=1;
        int sum1=1;
        int sum2=0;
        while(a<=5)
        {
            sum2=sum2+sum1;
            a++;
            sum1=sum1*a;
        }
        System.out.println(sum2);
    }
}

2.2 break、continue

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

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

举例:找到 100 - 200 中第一个 3 的倍数

int num = 100 ;
while ( num <= 200 ) {
if ( num % 3 == 0 ) {
System . out . println ( " 找到了 3 的倍数 , :" + num );
break ;
}
num ++ ;
}
// 执行结果
找到了 3 的倍数 , : 102
找到 100 - 200 中所有 3 的倍数
int num = 100 ;
while ( num <= 200 ) {
if ( num % 3 != 0 ) {
num ++ ; // 这里的 ++ 不要忘记 ! 否则会死循环 .
continue ;
}
System . out . println ( " 找到了 3 的倍数 , :" + num );
num ++ ;
}

2.3 for循环

【基本语法】

for(表达式①;表达式②;表达式③){

     表达式④;

}

表达式 1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式 2: 循环条件,满则循环继续,否则循环结束
表达式 3: 循环变量更新方式
代码示例:
打印1-100的和
public class Test {
    public static void main(String[] args) {
       int sum=0;
       for (int i=1;i<=100;i++){
           sum=sum+i;
       }
        System.out.println(sum);
    }
}

三.输入输出

3.1输出到控制台

1.System . out . println (输出内容 ); // 输出一个字符串 , 带换行
2.System . out . print (输出内容 ); // 输出一个字符串 , 不带换行
3.System . out . printf (输出内容 ); // 格式化输出,很少去用,就是比如要输出几位有效数字之类可以用

3.2 从键盘输入

import java.util.Scanner;//导入util包
public class Test {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);//必须写
        //字符串
        System.out.println("请输入名字:");
        String name=scanner.nextLine();
        //整型
        System.out.println("请输入年纪:");
        int age=scanner.nextInt();
        //浮点型
        System.out.println("请输入你的工资");
        float salary=scanner.nextFloat();
        //输出
        System.out.println(name);
        System.out.println(age);
        System.out.println(salary);
        scanner.close();//调用关闭方式
    }
}

 如果你们的版本和我的一样的话,我们打完这句Scanner scanner=new Scanner(System.in);,上面的import java.util.Scanner;不需要我们自己打,会自己生成。

【牛刀小试】

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

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
      int num=0;
      int sum=0;
      while (scanner.hasNextInt()){
          int temp=scanner.nextInt();
          sum=sum+temp;
          num++;
      }
        System.out.println(sum/num);
        scanner.close();
    }
}

 while(scanner.hasNextInt()),判断的是输入的是否为int类型。如果是,则执行,不是就退出循环。

四.猜数字游戏

100以内猜数字游戏:

import java.util.Scanner;
import java.util.Random;
public class Test {
    public static void main(String[] args) {
        Random random=new Random();
        Scanner scanner=new Scanner(System.in);
      int toGuess=random.nextInt(100);
      while (true) {
          System.out.println("请输入要输入的数字:");
          int num = scanner.nextInt();
          if (num < toGuess) {
              System.out.println("低了");
          } else if (num > toGuess) {
              System.out.println("高了");
          } else {
              System.out.println("猜对了");
              break;
          }
      }
        scanner.close();
    }
}


  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值