输入和输出

输出:分为print(),println(),printf()三种

print()是输出结果不换行,println()是输出结果后换行,printf()是用于对输出结果格式化。
格式化需要使用占位符:%?,若想变成%,只需要%%表达%
格式化的类型有:
%s 格式化字符串,%d格式化输出整数,%f格式化输出浮点数,%x格式化输出十六进制
%e格式化输出科学记数法浮点数
保留两位小数:printf("%.2f",3.1415);//对于3.14125保留两位小数;若想要保留四位或其他位数小数只需要将2改变成其他的数值即可。

输入:导入Java的工具包Scanner

        在控制台输入参数,需要使用到输入流System.in,使用System.in 来读取用户在控制台输入的值,在使用的时候,只需要导入一个Java.util的工具包即可。

Scanner scan =newScanner(System.in);
System.out.println("请输入一个整数:");//运行到此处会输出一句话
int input = scan.nextInt();//将输入的值,赋值给input,注意nextInt表示的是输入的值是Int型,若是其他的,需要根据输入的值进行改变;

如:String类型的是nextLine();double类型的是nextDouble()。

if...else

if(条件语句){满足条件后执行的语句},if条件语句中返回的值只有true或flase,若结果为true是,执行{}中的语句。执行结果为false,则if中的语句就不会执行,直接到下一个执行语句,或到esle中。

int n =20;
if(n>=20){
        System.out.println("兄嘚!");
          System.out.println("你真棒");//结果为true,系统会输出兄嘚!你真棒,不执行else语句
}else{
        System.out.println("继续努力啊!兄嘚!");//结果为false时执行输出
}

注:当if条件语句后不加{},默认执行条件语句后的第一句,其他 不算在条件执行语句中。

int n =20;
if(n<20)
        System.out.println("兄嘚!");
       System.out.println("你真棒");
//结果为false,系统会输出你真棒
串联多个if的时候,要注意层级的划分,若是层级的划分不正确,会导致部分语句不会执行。
int n =20;
if(n>10){
        System.out.println("兄嘚!");
          System.out.println("你真棒");//结果为true,系统会输出兄嘚!你真棒,不执行else语句
}else if (n=20){
        System.out.println("继续努力啊!兄嘚!");//结果为false时执行输出
}

switch

使用switch用来进行选择,和if...esls if 类似

代码格式:

switch(选择的值){
case (条件值得各个选项): {
        需要执行的语句;
        break;//每个case语句都必须携带break,因为若是不带break,case还有其他条件,就会一直执行结束,才跳出switch。
}
default :break;//默认的条件语句中,可以写case之外的情况,可以默认为空,也可以输出语句错误之类的。
}

例如:

String  fruit = "apple";
switch (fruit ){
case "apple" :{ System.out.println("选择了苹果!");break;}
case "orange":{System.out.println("选择了橙子!");break;}
default : {System.out.println("什么都没选!");break;}
}

按照fruit值,应当进入case "apple"的选项,输出选择了苹果!

但当如果每个case和default没有break,那就会输出选择了苹果!选择了橙子!什么都没选!,一直执行结束。如果case "orange"中带有break,那就会输出选择了苹果!选择了橙子!

注:如果JDK版本在12以上,可以对于switch进行缩写,且辞职婆娘个方法不具备穿透性,但如果jdk版本为1.8之类的,就会报错!

例如以上的写法:

String  fruit = "apple";
switch (fruit ){
case "apple" -> System.out.println("选择了苹果!");
case "orange" ->System.out.println("选择了橙子!");
default -> System.out.println("什么都没选!");
}

只会正常输出选择了苹果!

循环

while循环

循环结构:

while(条件语句){
循环内容;
}

注意:while的条件语句不能写一直为true的情况,否则会一直在循环之中无法跳出,导致CPU使用率到达100%,当条件语句为false的时候跳出循环。

例如:计算1-100的和

int sum =0;
int i =1;
while(i <= 100){
sum += i;
i++;
}
System.out.println(sum);

如果我们的条件写成i>0,则会一直陷入循环当中。此处的结果会输出5050;

do...while循环

先执行do中的语句,再确定是否循环。

int sum =0;
int i =1;
do{
sum += i;
i++;
}while(i <= 100);
System.out.println(sum);

如果while的条件为真,会一直执行do中的语句,但如果为假,就会跳出。

此处的循环结果和while循环一样,输出5050。

for循环

for(初始化语句;循环条件;更新语句){
//执行条件
}

执行条件中不要对更新语句的计数变量进行修改,这样可能会造成逻辑上的错误。

可以不用写for循环中的初始化语句,循环条件,更新语句,但是不推荐这样写,除了某些特定的情况下不需要写。

例如:1到100的和

int sum=0;
for(int i=0;i<=100;i++){
 sum =sum +i ;
}
System.out.println(sum);//输出结果5050

如果在执行语句中添加对于计数变量i进行修改,会造成执行结果不对。

例如:1到100的和

int sum=0;
for(int i=0;i<=100;i++){
 i=i+1;
 sum =sum +i ;
}
System.out.println(sum);//输出结果2601

对于计数器进行改变,发生了逻辑错误,这里是加了所有基数的和,并加到了101,若是想求1-100所有基数的和,可以以一下的方法写。

public class Main {
     public static void main(String[] args) {
      int sum=0;      for(int i=1;i<=100;i=i+2){
          sum=sum+i;
          System.out.println("sum="+sum+"i="+i);          }
     System.out.println(sum);//输出结果2500    }
}

for each循环

和for循环不同的是,for each循环的循环变量不是计数器,而是直接对于数组的本身的值。

例如:循环输出整型数组ns[1,2,3,4,5]

for(int n:ns){
System.out.println(n);
}

break、continue

break,continue可以适用于while、for循环中。break是跳出整个循环,而continue是结束本次循环,继续下次的循环。