Java基础知识--逻辑控制

98 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

输入输出

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可以正常读入带有空格的字符串

image-20220329211131593

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)

image-20220331093136923

判断闰年

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);
   }

}

欢迎点赞收藏关注,感谢大家的支持!