Java流程控制(三)
用户交互Scanner(java.util.Scanner获取用户的输入)
//基本语法 Scanner s = new Scanner(System.in)
通过Scanner类的next()与nextLine()方法获取输入的字符串,使用hasNext()与hasNextLine()判断是否还有输入的数据(Next不能得到带有空格的字符串,NextLine可以获得空白)
import java.util.Scanner; public class operator { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); //判断用于有没有输入的字符串 if (scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println("输出的内容为:"+str); } scanner.close(); } }
import java.util.Scanner; public class operator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用NextLine方式接收:"); if (scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); } scanner.close(); } }
import java.util.Scanner; public class operator { 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(); sum = sum + x; m = m + 1; System.out.println("当前输入的是第"+m+"个数据,总数为"+sum); } System.out.println("输入的总和为"+sum); System.out.println("平均数为"+(sum/m)); scanner.close(); } }
顺序结构(基本结构)
选择结构
if(单选择,双选择,多选择,嵌套)
//语法 if(布尔表达式){ //如果布尔表达式为true将执行语句 }
import java.util.Scanner; public class operator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //equals:判断字符串是否相等 if (s.equals("Hello")){ System.out.println(s); } System.out.println("End"); scanner.close(); } }
//语法
if(布尔表达式){
//如果布尔表达式为true将执行语句
}else{
//如果布尔表达式为false将执行语句
}
import java.util.Scanner; public class operator { public static void main(String[] args) { //考试分数大于60就是及格,小于60就是不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int i = scanner.nextInt(); if (i>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
import java.util.Scanner; public class operator { public static void main(String[] args) { //公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发 Scanner scanner = new Scanner(System.in); System.out.println("请输入软件收购状态:"); boolean s = scanner.nextBoolean(); if (s){ System.out.println("支付100万元"); } else { System.out.println("找人开发"); } scanner.close(); } }
//语法 if(布尔表达式1){ //如果语句为true将执行 }else if(布尔表达式2){ //如果语句为true将执行 }else if(布尔表达式3){ //如果语句为true将执行 }else{ //如果语句为false将执行 } import java.util.Scanner; public class operator { public static void main(String[] args) { //输入学习成绩,大于60分为及格,小于60分为不及格,其中大于90分为优秀,大于80分为良好 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int i = scanner.nextInt(); if (i>90){ System.out.println("优秀"); } else if (i>80) { System.out.println("良好"); } else if (i>70) { System.out.println("良"); } else if (i>60) { System.out.println("及格"); }else { System.out.println("不及格"); } scanner.close(); } }
if(布尔表达式1){ //如果布尔表达式1的值为true执行代码 if(布尔表达式2){ //如果布尔表达式2的值为true执行代码 } } 优点:提高计算效率
switch(多选择)switch case语句(判断一个变量与一系列的值中的某一个值是否相等,每一个值称为一个分支)
swithc(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选 //可以有任意数量的case语句 default://可选 //语句 } //case穿透现象,输出所有结果,需要使用break进行终止。switch匹配一个具体的值 import java.util.Scanner; public class operator { public static void main(String[] args) { char next = 'A'; switch (next){ case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良好"); break; case 'C': System.out.println("及格"); break; case 'D': System.out.println("不及格"); break; default: System.out.println("找不到结果"); } } }
循环结构(while循环,do...while循环,for循环)
while(布尔表达式){ //循环内容 } //在业务编程中应该避免死循环 public class operator { public static void main(String[] args) { int i = 0; while(i<100){ i++; System.out.println(i); } } }
public class operator { public static void main(String[] args) { //计算1+2+3+...+100 int i = 0; int sum = 0; while(i<=100){ i++; sum = sum + i; } System.out.println(sum); } }
do { //代码语句 }while(布尔表达式)先执行后判断 public class operator { public static void main(String[] args) { //计算1+2+3+...+100 int i = 0; int sum = 0; do{ sum = sum + i; i++; }while(i<=100); System.out.println(sum); } }
for(初始化;布尔表达式;更新){ //代码语句 } public class operator { public static void main(String[] args) { int a = 1;//初始化条件 while (a<=100){//条件判断 System.out.println(a);//循环体 a+=2;//迭代 } System.out.println("while循环结束");
//初始化//条件判断//迭代 for (int i=1;i<=100;i++){ System.out.println(i); } System.out.println("for循环结束"); } } for循环快捷键(100.for)
//死循环
for(;;){
}
public class operator { public static void main(String[] args) { //计算0到100之间的奇数和偶数和 int oddNum = 0; int evenNum = 0; for (int i = 0; i < 100; i++) { if (i%2!=0){//奇数 oddNum = oddNum + i;//oddNum+=i; }else {//偶数 evenNum = evenNum +i;//evenNum+=i; } } System.out.println("奇数的和"+oddNum); System.out.println("偶数的和"+evenNum); } }
public class operator { public static void main(String[] args) { //用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个 int A = 0; while (A<1000){ A++; if(A % 5 == 0){ System.out.println(A+"\t"); } if (A%(5*3)==0) { System.out.println(); } } } }
public class operator { public static void main(String[] args) { //用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个 for (int i = 0; i <= 1000; i++) { if (i%5==0){ System.out.println(i+"\t"); } if (i%(5*3)==0){ System.out.println(); } } } }
//println 输出完会换行
//print 输出完不会换行