【有道云笔记】二 3.13
https://note.youdao.com/s/RWOQv0g
3.continue/break
continue 跳出本次循环,继续下一循环
break 跳出离他最近的那次循环
@Test public void Test1(){ for(int i = 1; i <= 5; i++){ if(i == 3){ continue; } System.out.println(i);//输出1245 } for (int i = 1; i <= 5; i++){ System.out.println("i: " + i); for(int j = 1; j <= 5; j++){ if(j == 3){ break; } System.out.println("j: " + j); } } }
例题:随机生成一个整数1-1000
用户输入一个整数,程序给出与存储的数字是“大”或者“小”,知道用户猜到这个数字位置。
如果中途用户希望程序退出,输入0可以退出。
int num = 200;
猜吧!
300
太大了
猜吧!
180
太小了
猜吧!
200
恭喜你,猜对了
@Test public void Test2(){ Random random = new Random(); // [0, 1000) + 1 // [1, 1000] int num = random.nextInt(1000) + 1; //随机生成一个整数 System.out.println(num); Scanner scanner = new Scanner(System.in); while(true){ //无限循环,死循环 System.out.println("猜吧!"); int data = scanner.nextInt(); if(data > num){ System.out.println("太大了!"); } else if(data == 0){ break; } else if(data == num){ System.out.println("恭喜你,猜对了"); break; }else{ System.out.println("太小了!"); }} }
4.双重for循环
打印九九乘法表
//打印九九乘法表 @Test public void Test1(){ for(int i = 1; i <= 9; i++){ for(int j = 1; j <= i; j++){ System.out.print(j + "*" +i + "=" +i * j + "\t" ); //制表符 \t } System.out.println(); } }
制表符 \t
3.switch 循环语句
switch: 可以接受的值(int byte 整数类型,char,String)
switch(2) {
case 1:
.....
break;
case 2:
....
break;
.....
default:
.....
break;
}
练习:
输入月份、年份判断天数:
1、3、5、7、8、10、12 -------- 31天
4、6 、9、11--------------------30天
2----------------------------------28/29天
@Test public void Test2(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入月份"); int month = scanner.nextInt(); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("31天"); break; case 4: case 6: case 9: case 11: System.out.println("30天"); break; case 2: System.out.println("请输入年份"); int year = scanner.nextInt(); if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { System.out.println("29天"); }else{ System.out.println("28天"); } break; default: System.out.println("default"); break; } }
// >=90 // >=80 // >=70 // >=60 //
@Test public void Test3(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int grade = scanner.nextInt(); if(grade > 100 || grade < 0){ //卫语句 System.out.println("成績非法"); return; } grade /= 10; switch (grade){ case 1: case 2: case 3: case 4: case 5: System.out.println("不及格"); break; case 6: System.out.println("及格"); break; case 7: System.out.println("一般"); break; case 8: System.out.println("良好"); break; case 9: case 10: System.out.println("优秀"); break; } }
三、作业
1、计算某年是不是闰年:
能被4整除,但是不能被100整除
||
能被400整除
if (() || ()) {
}
@Test public void Work1(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入年份:"); int year = scanner.nextInt(); if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { System.out.println("Yes!"); }else{ System.out.println("No!!!"); } }
2、从控制台输入两个数,然后分别打印这两个数,然后交换这两个数的值
@Test public void Work2(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入两个数:"); int num1 = scanner.nextInt(); int num2 = scanner.nextInt(); System.out.println(num1 + " " + num2); int temp = 0; temp = num1; num1 = num2; num2 = temp; System.out.println(num1 + " " + num2); }
3、编写一个收银台收款程序,if
3.1定义输入----单价、数量、用户输入金额
定义输出----应收金额、找零
使用double类型变量 scanner.nextDouble();
3.2、当总价>=500时候打八折
3.3、考虑程序出现异常的情况,如:收款金额小于应收金额
若收款金额大于等于应收金额,则计算找零后输出
若收款金额小于应收金额,输出错误信息。
@Test public void Work3(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入单价" ); double unitprice = scanner.nextDouble(); System.out.println("请输入数量" ); double count = scanner.nextDouble(); System.out.println("请输入金额" ); double money = scanner.nextDouble(); double totalprice = unitprice * count; if(totalprice >= 500){ totalprice *= 0.8; } double returnprice = money - totalprice; if(totalprice <= money){ System.out.printf("找零:%.2f",returnprice); }else { System.out.println("金额不足"); } }
4、输出一下结构:
1
12
123
1234
12345
@Test public void Work4(){ for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print(j); } System.out.println(); } }
5、打印正三角形和倒三角形
*
***
*****
*******
*********
***********
@Test public void Work5(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入数字:"); int n = scanner.nextInt(); for(int i = 1; i <= n; i++){ for(int j = 1; j <= n - i; j++){ System.out.print(" "); } for(int j = n - i + 1; j <= n + i - 1; j++) { System.out.print("*"); } System.out.println(); } }
6、计算1-100以内所有奇数的和以及所有偶数的和,分别打印出来。
@Test public void Work6(){ int sum1 = 0,sum2 = 0; for(int i = 1; i <= 100; i++){ if(i % 2 == 0){ sum1 += i; }else{ sum2 += i; } } System.out.println(sum1); System.out.println(sum2); }
7、用for循环输出1—1000之间能被5整除的数,且每行输出3个
@Test public void Work7(){ for(int i = 1; i <= 1000;i++ ){ if(i % 5 == 0){ if(i % 3 == 0){ System.out.println(i); }else { System.out.print(i + "\t"); //制表符 /t,更加美观 } }else { continue; } } }
8、计算9的阶乘
@Test public void Work8(){ int sum = 1; for(int i = 1; i <= 9; i++){ sum *= i; } System.out.println("sum:" + sum); } }