while语句是Java中最常用的循环语句之一,它的基本结构如下:
while(条件表达式) { // 循环体语句 }
当条件表达式的值为true时,循环体内的语句会被执行;当条件表达式的值为false时,循环体外的语句才会被执行。因此,while循环是一种先判断后执行的循环。
下面我们通过一个例子来看看while循环的用法。假设我们要求计算1+2+3+...+100的和:
int sum = 0; // 定义sum变量用于存储总和 int i = 1; // 定义i变量用于存储数字 while (i <= 100) { // 当i小于或者等于100时,执行循环体 sum += i; // 把i加到sum中 i++; // 把i加1 } // 当i大于100时,退出循环体 System.out.println("1+2+3+...+100=" + sum);
上面代码中定义了sum变量用于存储总和;定义了i变量用于存储数字。然后使用while循环不断地把i加到sum中;当i大于100时退出循环体。最后在控制台上输出总和。运行上面代码后将会在控制台上显示“1+2+3+...+100=5050”。
while循环在其控制条件为真时重复语句或块。
这是它的一般形式:
while(condition) { // body of loop }
这里是一个while循环,从10减少,打印十行“tick":
public class Main { public static void main(String args[]) { int n = 10; while (n > 0) { System.out.println("n:" + n); n--; } } }
当你运行这个程序,你会得到以下结果:
以下代码显示如何使用while循环来计算和。
public class Main { public static void main(String[] args) { int limit = 20; int sum = 0; int i = 1; while (i <= limit) { sum += i++; } System.out.println("sum = " + sum); } }
上面的代码生成以下结果。
如果条件是 false
,则 while
循环的正文将不会执行。例如,在以下片段中,从不执行对 println()
的调用:
public class Main { public static void main(String[] argv) { int a = 10, b = 20; while (a > b) { System.out.println("This will not be displayed"); } System.out.println("You are here"); } }
输出:
while
的正文可以为空。例如,考虑以下程序:
public class Main { public static void main(String args[]) { int i, j; i = 10; j = 20; // find midpoint between i and j while (++i < --j) ; System.out.println("Midpoint is " + i); } }
上面代码中的 while
循环没有循环体和 i
和 j
在while循环条件语句中计算。它生成以下输出:
要执行while循环的主体至少一次,可以使用do-while循环。
Java do while循环的语法是:
do { // body of loop } while (condition);
这里是一个例子,显示如何使用 do-while
循环。
public class Main { public static void main(String args[]) { int n = 10; do { System.out.println("n:" + n); n--; } while (n > 0); } }
输出:
前面程序中的循环可以写成:
public class Main { public static void main(String args[]) { int n = 10; do { System.out.println("n:" + n); } while (--n > 0); } }
输出与上面的结果相同:
以下程序使用 do-while
实现了一个非常简单的帮助系统循环和 swith语句。
public class Main {public static void main(String args[]) throws java.io.IOException {
char choice;
do {
System.out.println("Help on:");
System.out.println(" 1. A");
System.out.println(" 2. B");
System.out.println(" 3. C");
System.out.println(" 4. D");
System.out.println(" 5. E");
System.out.println("Choose one:");
choice = (char) System.in.read();
} while (choice < '1' || choice > '5');
System.out.println("n");
switch (choice) {
case '1':
System.out.println("A");
break;
case '2':
System.out.println("B");
break;
case '3':
System.out.println("C");
break;
case '4':
System.out.println("D");
break;
case '5':
System.out.println("E");
break;
}
}
}
下面是这个程序生成的示例运行:
Java isDigit() 方法JavaCharacter类isDigit() 方法用于判断指定字符是否为数字。语法boolean isDigit(char ch)参数ch -- 要测试...
Java isUpperCase() 方法JavaCharacter类isUpperCase() 方法用于判断指定字符是否为大写字母。语法boolean isUpperCase(char ch)...
Java IO教程 -Java目录事件当文件系统中的对象被修改时,我们可以监听watch服务以获取警报。java.nio.file包中的以下类和接口提...
Java数据类型教程 -Java数组参数数组参数我们可以将数组作为参数传递给方法或构造函数。我们传递给该方法的数组的类型必须是与形...