package java开发1;import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;public class ArrayMinValue042 extends JFrame {
private  JLabel label_1;
private JPanel contentPane;
private JTextField textField;
private JLabel label; /**
 * Launch the application.
 */
public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ArrayMinValue042 frame = new ArrayMinValue042();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
 * Create the frame.
 */
public ArrayMinValue042() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 164);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

textField = new JTextField();
textField.setBounds(10, 25, 414, 21);
contentPane.add(textField);
textField.setColumns(10);

JLabel lblNewLabel = new JLabel("\u8BF7\u5728\u6587\u672C\u6846\u4E2D\u8F93\u5165\u6574\u6570\uFF0C\u4EE5\u7A7A\u683C\u4E3A\u5206\u9694\u7B26\u3002");
lblNewLabel.setBounds(10, 10, 414, 15);
contentPane.add(lblNewLabel);

JButton button = new JButton("\u8BA1\u7B97");
button.addActionListener(new ActionListener()
{ @Override
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);

} });
button.setBounds(21, 74, 93, 23);
contentPane.add(button);

label_1 = new JLabel("\u6700\u5C0F\u503C\uFF1A");
label_1.setBounds(124, 78, 55, 15);
contentPane.add(label_1);

label = new JLabel("");
label.setBounds(181, 78, 224, 15);
contentPane.add(label);
} protected void do_button_actionPerformed(ActionEvent e) {
String arrayStr=textField.getText().trim();
//通过文本域类中的gettext()方法。获取用户在文本域中输入的字符串内容,通过string类中的trim()
//方法,去除左右空格字符。这个方法返回字符串的副本,忽略前导空白,和尾部空白。如(前导)3,4,5(尾部)。
for(int i=0;i<arrayStr.length();i++)
//初始化i=0,i小于输入的字符串的长度。
{
char charAt=arrayStr.charAt(i);
//利用string类中的方法charAt(),传递i的值,即指定索引值从0开始,来获取输入的字符串指定索引处的char的值。
if(!Character.isDigit(charAt)&&charAt!=' ')
//调用Character类中的方法isdigit()传递要判断的charAt(char类型),来判断这个char类型是否
//是数字,如果不是,右边不运算,如果是,右边运算。
//charAt!=' ',这个是用来判断一个字符是不是空格。
{
JOptionPane.showMessageDialog(null,"输入包含非数字内容");
//利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
//的信息消息对话框,它有2个参数,
//第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
//第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
textField.setText(" ");
//将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
return;
//返回设置后的文本显示?
}
}
String[] numStrs=arrayStr.split(" {1,}");
//使用正则表达式分割字符串,split(" {1,}")这个表示的是空格至少出现一次。在双引号里的大括号前面有个空格符。
int[] numArray=new int[numStrs.length];
//创建整数数组,指定长度为字符串数组的长度。
for(int i=0;i<numArray.length;i++)
{
numArray[i]=Integer.valueOf(numStrs[i]);
//通过调用Integer类中的valueOf方法,将输入的字符串数组转换为整数数组。
}
int min=numArray[0];
//创建一个最小数字变量。
for(int j=0;j<numArray.length;j++)
//遍历整数。
{
if(min>numArray[j])
//如果最小值大于每一次循环,每一个整数?
{
min=numArray[j];
//最小值就等于其中的一个整数。
}
}

label.setText("数组中最小的数是: "+min);
//在空标签中显示结果。
}
}
我想问下,
int min=numArray[0];
//创建一个最小数字变量。
for(int j=0;j<numArray.length;j++)
//遍历整数。
{
if(min>numArray[j])

{
min=numArray[j];

}
}
这里面的if判断语句是什么意思,谢谢。Java

解决方案 »

  1.   

    还有,那个return返回的时什么呢?谢谢。
      

  2.   

    如果现在min的数值大于数组j位置的数值,把数组j位置的数值赋给min。 Return 返回的是null,终止这个method下面的代码执行
      

  3.   

    可是那个return语句下面没代码了啊?不是多此一举吗? if(min>numArray[j])
                     
                {
                    min=numArray[j];
                     这个还是没明白能详细点吗?最好举个例子。脑袋笨啊。
      

  4.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
      

  5.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
    是的。
      

  6.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
    就是说不再循环了?
      

  7.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
    就是说不再循环了?return 执行以后, 这个方法do_button_actionPerformed(ActionEvent e) 就不再执行了
      

  8.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
    就是说不再循环了?return 执行以后, 这个方法do_button_actionPerformed(ActionEvent e) 就不再执行了  String[] numStrs=arrayStr.split(" {1,}");
            //使用正则表达式分割字符串,split(" {1,}")这个表示的是空格至少出现一次。在双引号里的大括号前面有个空格符。
            int[] numArray=new int[numStrs.length];
            //创建整数数组,指定长度为字符串数组的长度。
            for(int i=0;i<numArray.length;i++)
            {
                numArray[i]=Integer.valueOf(numStrs[i]);
                //通过调用Integer类中的valueOf方法,将输入的字符串数组转换为整数数组。
            }
            int min=numArray[0];
            //创建一个最小数字变量。
            for(int j=0;j<numArray.length;j++)
                //遍历整数。
            {
                if(min>numArray[j])
                    //如果最小值大于每一次循环,每一个整数?
                {
                    min=numArray[j];
                    //最小值就等于其中的一个整数。
                }
            }
             
            label.setText("数组中最小的数是: "+min);
            //在空标签中显示结果。
    那下面这些都不执行了?
      

  9.   


    你说的不是这个return 么?
    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    //利用javax.swing包中的JOptionPane类调用showMessageDialog方法来调出标题为“Message”
                    //的信息消息对话框,它有2个参数,
                    //第一个参数parentComponen是确定在其中显示对话框的面板(frame),如果参数是nullparentComponent 不具有 Frame.则使用默认面板。
                    //第二个参数Message是指要显示的对象,"输入包含非数字内容":这个就是要显示的字符串对象。
                    textField.setText(" ");
                    //将在textField文本域文本组件  显示的文本   设置为指定文本(空格)。
                    return;
                    //返回设置后的文本显示?
    就是说不再循环了?return 执行以后, 这个方法do_button_actionPerformed(ActionEvent e) 就不再执行了  String[] numStrs=arrayStr.split(" {1,}");
            //使用正则表达式分割字符串,split(" {1,}")这个表示的是空格至少出现一次。在双引号里的大括号前面有个空格符。
            int[] numArray=new int[numStrs.length];
            //创建整数数组,指定长度为字符串数组的长度。
            for(int i=0;i<numArray.length;i++)
            {
                numArray[i]=Integer.valueOf(numStrs[i]);
                //通过调用Integer类中的valueOf方法,将输入的字符串数组转换为整数数组。
            }
            int min=numArray[0];
            //创建一个最小数字变量。
            for(int j=0;j<numArray.length;j++)
                //遍历整数。
            {
                if(min>numArray[j])
                    //如果最小值大于每一次循环,每一个整数?
                {
                    min=numArray[j];
                    //最小值就等于其中的一个整数。
                }
            }
             
            label.setText("数组中最小的数是: "+min);
            //在空标签中显示结果。
    那下面这些都不执行了?对
      

  10.   

    return 可以强制退出该方法。
      

  11.   

    void方法的return,只是中断方法。
      

  12.   

    if现在min>数组j位置的数值,把数组j位置的数值赋给min。 Return 返回的是null,终止这个method下面的代码执行 
      

  13.   


    if(min>numArray[j])
    //如果最小值大于数组j位置的值。
    {
    min=numArray[j];
    //最小值就等于j位置的整数。
    }我想问的是为什么min>numArray[j]时,min=numArray[j];呢,求解释
      

  14.   

    那个min就是一人中间变量,用于放当前最小值,比如数组int array[]={3,1,4,6,0}开开始min=3,然后用min和后面的比较,如果min>后面的说明当前min不是最小,就将后面小的给这个min,比如3>1那当前的min就为1了,再用1和4比较,最后1>0把0给min,最后得到的最小就是这个min也就是0,这不很好理解的嘛?