Java中提供了3中循環(huán)結(jié)構(gòu)
while循環(huán)
do...while循環(huán)
for循環(huán)
do{}while(); : do..while至少執(zhí)行一次
public class DoWhileDemo1 {
public static void main(String[] args) {
// int i = 10;
// while(){}
// while(i < 5) {
// System.out.println("hello1");
// i++;
// }
// do{}while(); : do..while至少執(zhí)行一次
// int j = 10;
// do {
// System.out.println("hello2");
// j++;
// }while(j < 5);
// for(循環(huán)變量初始化;循環(huán)條件;循環(huán)變量步長(zhǎng))
// 1.循環(huán)變量初始化
// 2.判斷是否滿足循環(huán)條件
// 3.執(zhí)行循環(huán)體
// 4.循環(huán)變量增加或減少
// 5.在回到第二步付翁,如此往復(fù)
for(int i = 0;i < 5;i++) {
System.out.println("hello");
}
}
}
break和continue的使用
public class Demo4 {
public static void main(String[] args) {
// break的使用
while(true) {
Scanner scan = new Scanner(System.in);
System.out.println("請(qǐng)輸入選項(xiàng):");
System.out.println("1-------登錄");
System.out.println("2-------注冊(cè)");
System.out.println("3-----退出程序");
int option = scan.nextInt();
if(option < 0 || option > 3) {
System.out.println("無(wú)效選項(xiàng)");
}else {
if(option == 1) {
System.out.println("登錄成功");
}else if(option == 2) {
System.out.println("注冊(cè)成功");
}else {
System.out.println("退出成功");
break;
}
}
}
System.out.println("歡迎下次再來(lái)?事摺7趸А!寇仓!");
}
}
public class HomeWork_OP5 {
public static void main(String[] args) {
// 輸出0-9之間的數(shù),但是不包括5
int i = 0;
// while(i < 10) {
// if(i != 5) {
// System.out.print(i);
// }
// i++;
// }
while(i < 10) {
if(i == 5) {
i++;
// 跳過本次循環(huán)
continue;
}
System.out.print(i);
i++;
}
}
}
額外知識(shí)點(diǎn)
Debug調(diào)試
public class DebugDemo {
public static void main(String[] args) {
// 雙擊加斷點(diǎn),右鍵-->Debug as-->F6
int num = 100;
if(num < 50) {
num++;
}
System.out.println(num);
}
}
Scanner的使用問題
public class ScannerProblemDemo {
public static void main(String[] args) {
// 特殊情況:第一次獲取的是數(shù)字编检,第二次獲取是字符串
Scanner scan = new Scanner(System.in);
System.out.println("請(qǐng)輸入一個(gè)數(shù)字1");
int num1 = scan.nextInt();
System.out.println("請(qǐng)輸入一個(gè)字符串2");
scan.nextLine();
String str2 = scan.nextLine();
System.out.println(num1+","+str2);
/*
* 在控制臺(tái)輸入的所有數(shù)據(jù)都會(huì)進(jìn)入內(nèi)存
* int num1 = scan.nextInt();
* num1會(huì)將內(nèi)存中的數(shù)據(jù)取走加勤,但內(nèi)存中還保留了一個(gè)enter
* String str2 = scan.nextLine();str2直接就把上次留下的enter取走了
* 所以沒有給我們輸入字符串的機(jī)會(huì)
* 解決方式:先用scan.nextLine();把上次留下的enter取走
*/
}
}
隨機(jī)數(shù)
public class RandomDemo {
public static void main(String[] args) {
// 產(chǎn)生隨機(jī)數(shù)
double num1 = Math.random();//[0,1)
// Scanner scan = new Scanner(System.in);
// 隨機(jī)數(shù)類
Random random = new Random();
// random.nextDouble() [0,1)的小數(shù)
// random.nextInt(n) [0,n)的整數(shù)
double num2 = random.nextDouble();
System.out.println(num2);
}
}
循環(huán)嵌套
三角形和99乘法表
public class Demo2 {
public static void main(String[] args) {
// 用*畫一個(gè)三角形
/*
*
**
***
****
*****
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
.....
*/
// for(int i = 1;i <= 5;i++) {
// // 畫*
// for(int j = 1;j <= i;j++) {
// System.out.print("*");
// }
// // 換行
// System.out.println();
// }
for(int i = 1;i <= 9;i++) {
for(int j = 1;j <= i;j++) {
System.out.print(j+"x"+i+"="+i*j+" ");
}
// 換行
System.out.println();
}
}
}
public class Demo4 {
public static void main(String[] args) {
// 輸出2-100之間的所有質(zhì)數(shù)
// 質(zhì)數(shù):只能被1和本身整除 2 3 5 7 11 13 17 19 23...
for(int i = 2;i < 101;i++) {
boolean b = true;
// 判斷是否是質(zhì)數(shù)
for(int j = 2;j < i;j++) {
// 判斷是否能整出
if(i%j == 0) {
// 一旦整除仙辟,b=false同波,表示整除過
b = false;
break;
}
}
// 根據(jù)b是true還是false,我們就知道內(nèi)層循環(huán)是如何結(jié)束
// 1.true --> 自然結(jié)束
// 2.false --> false
if(b) {
System.out.println(i);
}
}
}
}
練習(xí)題
public class Practice3 {
public static void main(String[] args) {
// 求s=a+aa+aaa+aaaa+….+aa...a的值叠国,
// 其中a是一個(gè)數(shù)字未檩。例如2+22+222+2222,
// a的值和加數(shù)個(gè)數(shù)n均從控制臺(tái)獲取
Scanner scan = new Scanner(System.in);
System.out.println("請(qǐng)輸入n");
int n = scan.nextInt();
System.out.println("請(qǐng)輸入a");
int a = scan.nextInt();
int temp = a;
int sum = 0;
for(int i = 0;i < n;i++) {
sum = sum + a;
a = a * 10 + temp;
}
System.out.println(sum);
}
}
public class Practice3 {
public static void main(String[] args) {
// 求s=a+aa+aaa+aaaa+….+aa...a的值粟焊,
// 其中a是一個(gè)數(shù)字冤狡。例如2+22+222+2222,
// a的值和加數(shù)個(gè)數(shù)n均從控制臺(tái)獲取
Scanner scan = new Scanner(System.in);
System.out.println("請(qǐng)輸入n");
int n = scan.nextInt();
System.out.println("請(qǐng)輸入a");
int a = scan.nextInt();
int temp = a;
int sum = 0;
for(int i = 0;i < n;i++) {
sum = sum + a;
a = a * 10 + temp;
}
System.out.println(sum);
}
}
public class Practice5 {
public static void main(String[] args) {
// 一球從100米高度自由落下项棠,每次落地后反跳回原高度的一半悲雳;
// 再落下,求它在第10次落地時(shí)香追,共經(jīng)過多少米合瓢?第10次反彈多高
double height = 100;
double rt = 50;
for(int i = 2;i <= 10;i++) {
height = height + rt * 2;
rt = rt/2;
}
System.out.println(height);
System.out.println(rt);
}
}