Scanner类
-
用户Scanner
通过Scanner类获取用户的输入
nextLine()
-
用回车为结束符
-
可以获取空格
next()
-
一定读取到有效字符才结束输入
-
next()不能得到带有空格的字符串
-
//扫描器对象 Scanner scanner =new Scanner(System.in); System.out.println("next接收:"); //判断有无输入 if(scanner.hasNext()){ //next()接收 String str=scanner.next();//程序会等待输入完毕 System.out.println("内容为:"+str); } scanner.close(); //IO流的类不关闭会一直占用,用完就关掉
public static void main(String[] args) { //扫描器对象 Scanner scanner =new Scanner(System.in); System.out.println("nextLine接收:"); //判断有无输入 if(scanner.hasNext()){ //nextLine()接收 String str=scanner.nextLine();//程序会等待输入完毕 System.out.println("内容为:"+str); } scanner.close(); }
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入"); String str = scanner.nextLine(); System.out.println("内容为:" + str); scanner.close();
public static void main(String[] args) { Scanner scanner= new Scanner(System.in); int i=0; float f= 0.0f; System.out.println("请输入整数:"); if(scanner.hasNextInt()) { i=scanner.nextInt(); System.out.println("整数:" + i); } else{ System.out.println("不是整数"); } System.out.println("请输入小数:"); if (scanner.hasNextFloat()) { f=scanner.nextFloat(); System.out.println("小数:" + f); } else{ System.out.println("不是小数"); } scanner.close(); }
public static void main(String[] args) { //求多个数字总和,平均数,回车确定,不是数字报错 Scanner scanner = new Scanner(System.in); //总和 double sum = 0; //计算数字个数 int m = 0; while (scanner.hasNextDouble()) { double x = scanner.nextDouble(); m++; sum += x; System.out.println("你输入了" + m + "个数字,结果sum=" + sum); } System.out.println(m + "个数字总和:" + sum); System.out.println(m + "个数字平均值:" + (sum / m)); scanner.close(); }
顺序结构
-
任何一个算法都离不开的基本算法结构
-
一句一句执行
循环结构
-
while循环
需要让表达式失效来结束循环,避免死循环
先判断后执行
public static void main(String[] args) { int i=0; while(i<100){ i++; System.out.println(i); } }
public static void main(String[] args) { int i =0; int sum=0; while(i<=100) { sum+=i; i++; } System.out.println(sum); }
-
do...while循环
先执行后判断
不满足条件也会至少执行一次
public static void main(String[] args) { int i =0; int sum = 0; do{ sum+=i; i++; }while(i<=100); System.out.println(sum); }
public static void main(String[] args) { int a=0; while(a<0){ System.out.println(a); a++; } do{ System.out.println(a); a++; }while(a<0); }
-
for循环
-
-
执行次数在执行前就规定好
最有效最灵活
public static void main(String[] args) { int a=1;//初始化 while(a<=100) {//条件 System.out.println(a);//循环体 a += 1;//迭代 } System.out.println("结束"); for(int i =1;i<=100;i++){ System.out.println(i); } System.out.println("结束"); }
public static void main(String[] args) { //0-100 奇偶的和 int oddSum=0; int evenSum=0; for(int i=0;i<=100;i++){ if(i%2!=0){ oddSum+=i; }else{ evenSum+=i; } } System.out.println("奇数和:"+oddSum); System.out.println("偶数和:"+evenSum); }
public static void main(String[] args) { //1-1000被五整除 每三个换行 for(int i=1;i<=1000;i++){ if(i%5==0){ System.out.print(i+"\t"); } if (i%(5*3)==0){//每行 System.out.println(); } } }
public static void main(String[] args) { //九九乘法表 for (int j = 1; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(j+"*"+i+"="+(j*i) + "\t"); } System.out.println(); } }
public static void main(String[] args) { //打印三角形 5行 for (int i = 1; i <=5; i++) { for(int j=5;j>=i;j--){ System.out.print(" "); } for(int j=1;j<=i;j++){ System.out.print("*"); } for(int j=1;j<i;j++){ System.out.print("*"); } System.out.println(); } }
-
增强型for循环
-
主要用于数组和集合
-
public static void main(String[] args) {
int[] numbers={10,20,30,40,50};
for(int i=0;i<5;i++){
System.out.println(numbers[i]);
}
//遍历数组
for(int x:numbers){
System.out.println(x);
}
}
选择结构
-
if单选择结构
-
双选择结构
-
多选择结构
-
else 必须在所有else if 后面
else if 执行之后,其余的else if 和else 将跳过执行
-
嵌套if结构
-
switch多选择结构
-
变量类型可以是byte short int char
-
从 JAVA SE 7 开始支持String
public static void main(String[] args) { String name="aaa"; switch(name){ case"aaa": System.out.println("aaa"); break; case"bbb": System.out.println("bbb"); break; default: System.out.println("end"); } }
break&continue
-
break强行终止循环 程序没有终止
-
continue终止某次循环 接着下一次判断条件循环
public static void main(String[] args) { int i = 0; while(i<100){ i++; System.out.println(i); if(i==30){ break; } } System.out.println("131"); }
public static void main(String[] args) { int i=0; while(i<100){ i++; if(i%10==0){ System.out.println(); continue; } System.out.println(i); } }
goto
JAVA中没有goto
标签作用
不建议使用
public static void main(String[] args) { //101-150质数 int count = 0; outer: for (int i = 101; i < 150; i++) { for (int j = 2; j < i / 2; j++) { if (i % j == 0) { continue outer; } } System.out.println(i + ""); } }