可以通过Scanner类来获取用户的输入
基本语法:
Scanner s=new Scanner(System.in);
通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据
next()接受的效果 (有空格 只输出了hello world并没有输出)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V775rb85-1642091685974)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220109233542960.png)]
nextLine()接受的效果 (有空格 hello world全部输出了)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7sa6bJs-1642091685976)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220109233740130.png)]
next():
nextLine():
小结:尽量使用nextLine()
//输入多个数字,求其和并求其平均值
Scanner scanner=new Scanner(System.in);
System.out.println("请输入数据:\n");
//和
int num=0;
//输入数据的个数
int m=0;
//当输入不是整型的时候就结束输入
while (scanner.hasNextInt()){
num+=scanner.nextInt();//求和
m++;//计数
}
//平均数
double avg=num/m;
System.out.println("和为:"+num);
System.out.println("平均数为:"+avg);
scanner.close();
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6LX1TCp5-1642091685976)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220110001554102.png)]
除非特别指明,否则按照顺序一句一句的执行 自上而下的顺序进行,由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
if单选择结构:
if(布尔表达式){
//如果布尔表达式为true,则将执行语句
}
case穿透性 一定要带上break,
同时支持String 反编译,通过hasCode进行选择
//结构
Switch(expression){
case value: xxxxxxx
break;
case value:xxxxxxxxx
break;
default:
xxxxxx
}
一般要避免死循环,少数情况下需要一直执行如:服务器的请求响应监听等
while(布尔表达式){
//循环内容
}
让循环在失效的情况下停止下来
do{
//执行内容
}while(布尔表达式)
do-while即使不满足条件,程序也至少执行一次
for(初始化;布尔表达式;更新){
//代码块
}
for循环的训练:
package com.study.xunhuan;
public class ForDemo {
public static void main(String[] args) {
//ctrl+shift+/ 块注释快捷键
/*int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
System.out.println(sum);*/
//计算0-100之间的奇数和偶数的和
int jNum=0;
int oNum=0;
for(int i=0;i<=100;i++){
if(i%2==0){//偶数
oNum+=i;
}else {
jNum+=i;
}
}
System.out.println(jNum);
System.out.println(oNum);
//用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个
int n=0;//记每行个数
for(int i=1;i<=1000;i++){
if(i%5==0){
n++;
System.out.print(i+" ");
if(n==3){
System.out.println();
n=0;
}
}
}
System.out.println();
//打印九九乘法表
int num;
for(int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
//运行效果
2500
2550
5 10 15
20 25 30
35 40 45
50 55 60
65 70 75
80 85 90
95 100 105
110 115 120
125 130 135
140 145 150
155 160 165
170 175 180
185 190 195
200 205 210
215 220 225
230 235 240
245 250 255
260 265 270
275 280 285
290 295 300
305 310 315
320 325 330
335 340 345
350 355 360
365 370 375
380 385 390
395 400 405
410 415 420
425 430 435
440 445 450
455 460 465
470 475 480
485 490 495
500 505 510
515 520 525
530 535 540
545 550 555
560 565 570
575 580 585
590 595 600
605 610 615
620 625 630
635 640 645
650 655 660
665 670 675
680 685 690
695 700 705
710 715 720
725 730 735
740 745 750
755 760 765
770 775 780
785 790 795
800 805 810
815 820 825
830 835 840
845 850 855
860 865 870
875 880 885
890 895 900
905 910 915
920 925 930
935 940 945
950 955 960
965 970 975
980 985 990
995 1000
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
Process finished with exit code 0
格式:
for(声明语句:表达式){
//代码块
}
int[] num={1,2,3,4,5};
//写死的操作
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
//增强版for循环是 num把其数组的每一个值都赋值给了i
for (int i:num){
System.out.println(i);
}
break用于强行退出循环,不执行循环中剩余的语句(强制终止循环)
continue语句用于循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定(终止本次循环,用于跳过本次循环中未执行的语句)
package com.study.xunhuan;
public class BreakContinue {
public static void main(String[] args) {
//break
int i=0;
while(i<100){
i++;
System.out.println(i);
if (i==10){
break;//终止循环
}
}
//break输出结果, 10之后的数据都没输出
//continue终止本次循环,不影响大局
int n=0;
while(n<100){
n++;
if(n%20==0){
System.out.println();
continue;
}
System.out.println(n);
}
//continue输出结果,20的倍数都没输出
}
}
label:for(){
if(){
continue label;//循环返回到label处
}
}