基本语法
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般要使用hasNext()与hasNextLine()判断是否还有输入的数据。
public class demo01 { public static void main(String[] args) { //创建一个扫描对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next接收"); //使用next方法接收 String str = scanner.next(); System.out.println("输出的数据:"+str); //IO流的类如果不关闭会一直占用资源,要用完就关掉 scanner.close(); } } 输入Hello world 输出Hello
public class demo02 { public static void main(String[] args) { //创建一个扫描对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine接收"); //使用nextLine方法接收 String str = scanner.nextLine(); System.out.println("输出的数据:"+str); //IO流的类如果不关闭会一直占用资源,要用完就关掉 scanner.close(); } } 输入Hello world 输出Hello world
if(布尔表达式){ //如果表达式为true将执行的语句 }
if(布尔表达式){ //如果表达式为true将执行的语句 }else{ //如果表达式为false将执行的语句 }
if(布尔表达式1){ //如果表达式1的值为true将执行的语句 }else if(布尔表达式2){ //如果表达式2的值为true将执行的语句 }else if(布尔表达式3){ //如果表达式3的值为true将执行的语句 }else { //如果以上表达式都不为true执行的语句 }
switch(expression){ case value: //语句 break;//可选,用于停止 case value: //语句 break;//可选 //可以有任意个case语句 default://可选,当expression中的值不符合上面所有的case就执行,如果上一条case执行了且没加break语句,default也会执行 //语句 }
当对应一条语句时,如果未加break语句,则会从这条语句一直执行到最后一条语句结束
public static void main(String[] args) { //输出1+2+3+...+100 int i = 0; int sum = 0; while (i<=100) { sum=sum+i; i++; System.out.println(sum); } }
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); }
while和do...while区别
public static void main(String[] args) { int a = 0; //while while (a<0) { System.out.println(a); a++; } System.out.println("------"); //分割线 //do...while do { System.out.println(a); a++; }while (a<0); } 输出结果: ------ 0 //while先判断后执行 //do...while先执行后判断,也就是说do...while最少会执行一次
for循环是支持迭代的一种通用结构
迭代是重复反馈过程的活动
//标准格式 for(初始化;布尔表达式;更新){ //代码语句 } IDEA中生成for循环的快捷键:100.for 生成如下代码 for (int i = 0; i < 100; i++) { } //计算0到100之间奇数和偶数的和 public static void main(String[] args) { 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); } //输出1-1000之间能被5整除的数,并且每行输出三个 public static void main(String[] args) { for (int i = 0; i <= 1000; i++) { if (i%5==0) { System.out.print(i+"\t"); //\t:制表符,表示一个Tab } //每打印三个被五整除的数后换行输出 if (i%(5*3)==0) { System.out.println(); //换行 } } } //打印九九乘法表 public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j<= i; j++) { System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.println(); } } 执行过程 判断i --> 判断j --> 执行里面的sout --> j+1 --> 再次判断j --> 直到判断为false --> 执行换行sout --> i+1 --> 再次判断i --> 直到判断为false --> 停止循环打印
for(声明语句:表达式){ //代码语句 } public static void main(String[] args) { int[] numbers = {10,20,30,40,50};//定义一个数组 //遍历数组的元素 for (int x:numbers){ System.out.println(x); } } //遍历是指沿着某条搜索路线,依次对树中每个节点均做一次访问。 //简单来说就是就相当于给全部循环 比如你写个程序 给每个数加1 ,然后给的数是1,2,3,4,5, 就等于第一次程序循环先给1加1,然后再循环回来给2加1,再循环回来给3加1,树的节点相当于字典中的目录。根节点就是最大的目录,子节点是在根节点中的可以有多个。
在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。
public static void main(String[] args) { int i = 0; while (i<100){ i++; System.out.println(i); if (i==30) { break;//当i=30,停止循环 } } } //打印结果为1到30换行打印
用在循环体语句中,用于终止某次循环过程。
public static void main(String[] args) { int i = 0; while (i<23) { i++; if (i%10==0) { System.out.print(" "); continue; //每到10的倍数,打印空格并跳过此循环 } System.out.println(i+" "); } } //打印结果为 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 21 22 23 //9和19后面有两个空格
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(); } } //打印结果 * **! ***!! ****!!! //全为*的效果图 * *** ***** *******