标题无意冒犯,学习python有感而发,此篇介绍java学习,流程控制,
流程控制
块作用域,条件语句,循环
块作用域
块(既复合语句)是指若干条Java语句组成的语句,并且用一对大括号括起来。块定义了变量的作用域,一个块可以嵌套在另一个块中,但在同一个块中不能声明同名变量
public class Hello { //块的开始
public static void main(String[] args) {
int a ;
{
int k;
//int a; 此为错误操作一个块下,不能声明同名变量
}
}
}//块的结束
条件语句(if,else)
条件语句: if ,else(不存在elif)
条件必须括号括起来,else部分是可以选择的,else子句和最相邻的if组成一组
public class Hello {
public static void main(String[] args) {
int a = 10;
int b = 20;
if ( a >= b)
{ //当if处理执行大括号内所以语句
a = a + 10 ;
}
else
{//当if不成立处理执行大括号内所以语句
b = b - 10;
}
System.out.println(a);
System.out.println(b);
}
}
public class Hello {
public static void main(String[] args) {
int a = 30;
int b = 20;
if ( a >= b)
{ //当if处理执行大括号内所以语句
a = a + 10 ;
}
else
{//当if不成立处理执行大括号内所以语句
b = b - 10;
}
System.out.println(a);
System.out.println(b);
}
}
虽然没有elif,但可以这样玩
public class Hello {
public static void main(String[] args) {
int a = 20;
int b = 20;
if ( a > b)
{ //当if处理执行大括号内所以语句
a = a + 10 ;
}
if (a < b)
{//当if不成立处理执行大括号内所以语句
b = b - 10;
}
else
{
a=100;
b=100;
}
System.out.println(a);
System.out.println(b);
}
}
java中常见的应该是这个样子的
public class Hello {
public static void main(String[] args) {
int a = 20;
int b = 20;
if ( a > b)
{ //当if处理执行大括号内所以语句
a = a + 10 ;
}
else if (a < b) //常见else if这样的组合
{//当if不成立处理执行大括号内所以语句
b = b - 10;
}
else
{
a=100;
b=100;
}
System.out.println(a);
System.out.println(b);
}
}
循环(while)
小编在这里先告诉大家一个关闭命令提示符运行程序的快捷键:ctrl+c
当(条件)为真(True)时,while语句才开始执行,当(条件)为假(False)时,while循环一次也不执行,不要忘了设置终止条件,不然就成为了死循环
public class Hello {
public static void main(String[] args) {
int a = 20;
while ( a < 100)
{ //当if处理执行大括号内所以语句
a = a + 30 ;
System.out.println(a);//查看a的变化
}
System.out.println(a);//查看a的值
}
}
while 结构
定义变量
while(循环条件){
循环体
}
do/while,虽然条件不满足,但至少执行一次,
import java.util.*;
public class Hello {
public static void main(String[] args) {
int a = 20;
int b = 10 ;
do
{
System.out.println("来让我们看看");
}
while ( a > 100);
{ //当if处理执行大括号内所以语句
a = a + 30 ;
System.out.println(a);//查看a的变化
}
}
}
do ... while 结构
do {
循环体
}while(循环条件);
public class Hello {
public static void main(String[] args) {
long sum=1;
int i = 1;
do {
sum *=i;
i++;
}while(i <=10);
}
System.out.println(sum);
}
确定循环(for)
for循环是一种支持迭代的一种通用结构,for语句内部声明的变量无法全局使用。
可以通过记时=数器或类似的变量控制迭代次数,每次迭代都会使变量更新。
import java.util.*;
public class Hello {
public static void main(String[] args) {
for (int i = 0; i<=10;i++)
System.out.println(i);
}
}
for 结构
for (定义一个变量;判断是否符合的条件;条件的升级){
//循环体
}
//死循环(条件设置为1=1)
for (;1=1;){
循环体
}
有一条不成文的规定:for语句3部分应该对同一个计数器变量进行初始化,检测和更新。
多重控制:switch语句
为了弥补if/else结构的不足,和c++一样有switch语句。
switch 特点
1 | 一般想要加入break |
---|---|
2 | 如果还有其他条件,需要加default |
case标签(1,Java.1.5前,类型为char,byte,short或者int的常量 2,1.5后增加枚举常量 3,从Java.7开始还可以是字符串)后面必须加冒号。
import java.util.*;
public class Hello {
public static void main(String[] args) {
int a = 10;
switch (a)
{
case 1:
System.out.println("你好");
break; //必须加break
case 2:
System.out.println("欢迎光临");
break;
case 3:
System.out.println("哈哈");
break;
case 4 :
System.out.println("来吧");
break;
default :
a+=10;
System.out.println("结束了");
System.out.println(a);
break;//default下break可加可不加
}
}
}
switch 结构
定义一个变量
switch(循环条件){
循环体
升级条件(在末尾添加)
}
//死循环
switch(True){
循环体}
当没有break
import java.util.*;
public class Hello {
public static void main(String[] args) {
int a = 2;
switch (a)
{
case 1:
System.out.println("你好");
case 2:
System.out.println("欢迎光临");
case 3:
System.out.println("哈哈");
case 4 :
System.out.println("来吧");
default :
a+=10;
System.out.println("结束了");
System.out.println(a);
break;//default下break可加可不加
}
}
}
没有break就不会条从循环
中断控制流程语句(break,continue)
break:与任何使用break语句代码一样,需要检测循环是否正常进行,还是由break条出。结束本层循环。
continue:带标签的continue语句,将跳到与标签匹配的循环首部。结束本层的本次循环
练习
用循环计算100以内的偶数和
public class Hello {
public static void main(String[] args) {
int sum=0;
int i=2;
while ( i<101){
if (i%2==0)
sum+=i;
i++;
}System.out.println(sum);
}
}
public class Hello {
public static void main(String[] args) {
int sum=0;
for(int i=0;i<101;i++)
if (i%2==0){
sum+=i;}
System.out.println(sum);
}
}
输入一个数,利用循环查看是否为偶数,查找从0到这个数中有没有3(偶数)或5(奇数)的倍数?
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//标准输入
System.out.println("请输入一个整数:");
int neber = sc.nextInt();//接收输入数据
//判断是否为偶数
if (neber %2 ==0){
//是偶数,看是否存在3倍数
System.out.println("数为偶数");
for(int i =1; i <=neber;i++){
if (i%3==0){
System.out.println("有3的倍数有:"+i);
}
}
}else{
System.out.println("数为奇数");
for(int i =1;i<=neber;i++){
if (i%5==0){
System.out.println("有5的倍数有:"+i);
}
}
}
}
}
附加一个报错小技巧(小编本人遇到,亲测有效)
这个问题出现在编译的时候,是自己设置的Java编码格式出现的问题(现象如下图)
解决部分:
// -encoding UTF-8 现在的编码格式
javac -encoding UTF-8 自己文件名称(xxx.java)
执行结果