zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Java基础知识--逻辑控制

2023-02-25 18:17:41 时间

输入输出

import java.util.Scanner;
public class TestDemo1{
public static void main(String[] args){
    Scanner scan =new Scanner (System.in);
    int a=scan.nextInt();//输入一个整型
    System.out.println(a);
    String str=scan.next();//输入一个字符串
    System.out.println(str);
    }
}

要是使用

String str=scan.nextLine(); System.out.println(str);

打印出数字之后就会结束程序,因为str把回车键录了进去,所以读入int和String 类型时,应该使用String str=scan.next();

使用scan.next读到空格就结束了,而使用scan.nextLine可以正常读入带有空格的字符串

import java.util.Scanner;
public class TestDemo2{
public static void main(String[] args){
    Scanner scan =new Scanner (System.in);
    int a=scan.nextInt();
    System.out.println(a);
    //String str=scan.nextLine();//会读入空格,无法录入字符串
    //System.out.println(str);
    String str=scan.next();//可以接着数字后面输入字符串
    System.out.println(str);
}
}
//但是单独输入字符串,String str=scan.nextLine()就可以打印出带空格的完整的字符串,而
//String str=scan.next()只会打印到空格之前的字符串

顺序结构

正常写就行

分支结构

if else

if括号里面的必须是布尔类型的表达式

eg:if(a==10)

判断闰年

import java.util.Scanner;//包
public class TestDemo1{
public static void main(String[] args){
    Scanner scan =new Scanner (System.in);
    while(scan.hasNextInt()){		//多组输入
            int year=scan.nextInt();
            if((year%4==0&&year%100!=0)||(year%400==0))
            {
                System.out.println("闰年");
            }
            else {
            System.out.println("不是闰年");
            }
    }	
}
}

else会与最近的未匹配的if结合

if语句只会进入一个条件里面

(多组输入结束的方法:按ctrl+C(强制终止)或者 ctrl+D也可以结束程序)

switch语句

import java.util.Scanner;
public class TestDemo1{
public static void main(String[] args){
    Scanner scan =new Scanner (System.in);
    while(scan.hasNextInt()){     //多组输入
        int a=scan.nextInt();
        switch(a){    //写switch语句时,(在没有特殊情况下)不要忘记写break
            case 1:
            System.out.println("1");
            break;
            case 2:
            System.out.println("2");
            break;
            default :
            System.out.println("错误");
            break;
        }
    }
}   
}

哪些类型不能作为switch参数?

long float double boolean

String 和 枚举也是可以作为switch的参数

循环语句

while循环

与if语句一样,while语句后面的参数也要是boolean类型

public class TestDemo2{
public static void main(String[] args){
    int a=10;
    while(a>=0){
        System.out.println("yes");
        a--;
    }
}
}

求5的阶乘

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

break与continue

break是跳出循环,break是在循环和循环中使用

continue是解释本次循环,continue只能在循环中使用

for循环

//求5!+4!+3!+2!+1!
import java.util.Scanner;
public class TestDemo3 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a=scan.nextInt();//5
        int ret=1;
        int sum=0;
        //方法一:
        for(int j=1;j<=a;j++){
            for(int i=1;i<=j;i++){
                ret*=i;
            }
            sum+=ret;
            ret=1;//记得重置
        }
        System.out.println(sum);
        //方法二:
        //for(int i=1;i<=a;i++){
        //	ret*=i;
        //	sum+=ret;
        //	
        //}
        //System.out.print(sum);
   }

}