2014-12-16 2 views
-4
package com.selenium.utitlity; 

import java.io.File; 
import java.io.IOException; 
import java.util.Hashtable; 

import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class ReadRows { 
    public static Hashtable<String, String> getRowValues(int row) 
      throws IOException { 
     File file = new File("./prop.xlsx"); 
     if (file.exists()) { 
      Hashtable<String, String> table = new Hashtable<String, String>(); 
      XSSFWorkbook workbook = new XSSFWorkbook("./prop.xlsx"); 
      XSSFSheet sourceSheet = workbook.getSheet("Sheet1"); 
      int LastRow = sourceSheet.getLastRowNum(); 
      // GetHeading of the Row 
      XSSFRow headerRow = sourceSheet.getRow(0); 
      // Get Test Data 
      XSSFRow sourceRow = sourceSheet.getRow(row); 
      if (row > LastRow) { 
       System.out.println("The row is out of range"); 
      } else { 
       int lastColumn = headerRow.getLastCellNum(); 
       for (int i = 0; i < lastColumn; i++) { 
        table.put(headerRow.getCell(i).toString(), sourceRow 
          .getCell(i).toString()); 
       } 
      } 
      return table; 
     } else { 
      System.out.println("No such file is there in the directory"); 
      return null; 
     } 

    } 
} 

Я пытаюсь использовать перерыв или выйти в следующем фрагменте кода:Как сломать условие if?

if (row > LastRow) { 
        System.out.println("The row is out of range"); 
       } 

для выхода кода не возвращать таблицу как NULL. Но если перерыв не используется, я получаю следующий результат

The row is out of range 
null

Я не хочу, чтобы напечатать пустой я хотел использовать перерыв, когда строка> LastRow

+5

'if' не является циклом. –

+1

удалите часть else, и вы должны заселить стол. – SMA

+1

Вы не можете использовать 'break' здесь, и даже если бы вы могли, это не решило бы проблему, что вернуть. Я бы предположил, что вы «бросили» какое-то исключение, например. 'IllegalArgumentException', в этом случае. –

ответ

1

Сначала я хотел бы отметить, что if заявления не являются петли. Они могут использоваться рекурсивно, но это из-за их естественного использования. Чтобы разбить или продолжить цикл, вы можете просто использовать ключевое слово break или continue.

Они используются как в помеченных, так и в немаркированных контекстах. Проверьте oracle docs для более подробного объяснения.

break используется для завершения for, while & do-while однако не могут быть использованы в вашем контексте. Вместо этого вы должны выбрать throw. Затем вы можете поймать исключение и сделать все, что вы хотите с ним сделать.

Вы можете использовать как break, так и continue в заявлении if, когда он находится внутри цикла.

Надеюсь, это поможет.