输入输出
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);
}
}